This is a simple VPN for ChromeOS and ChromeOS Flex to install this you will need a few things.
-
You need linux terminal beta enabled (for older computers that don't support it I managed to bypass by turning on legacy boot support and if that doesn't work try putting it first on boot priority)
-
You will need chromeos autostart repository (https://github.com/supechicken/ChromeOS-AutoStart)
-
You will need to turn on developer mode for extensions
-
You will finally need this github repository
-
Download this GitHub repository as a ZIP. Click the green Code button above → select Download ZIP and unzip the folder
-
Move the folder into your Linux container. Open the ChromeOS Files app → Right-click the folder → Select Move to Linux
-
mv ChromeOS-VPN-main ~/ChromeOS-VPN
-
cd ~/ChromeOS-VPN
-
Then install openvpn: sudo apt update sudo apt install openvpn
-
Add the autostart to extensions
-
Make sure autostart_test.sh and VPN.py are excutible and if not make them excutible
-
Use this command to turn it on bash ~/ChromeOS-VPN/autostart_test.sh
-
Add a new entry in the extension and select developer mode and paste in sleep 10 && bash ~/ChromeOS-VPN/autostart_test.sh
-
Save that entry and configure a bash profile using: nano ~/.bash_profile or vim ~/.bash_profile
-
Paste in this: if [ ! -f /tmp/vpn_autostart.log ]; then python3 ~/ChromeOS-VPN/VPN.py start ~/ChromeOS-VPN/dummy.ovpn >> /tmp/vpn_autostart.log 2>&1 fi
-
Restart your computer
-
To test that it is working paste in this cat /tmp/vpn_autostart.log
You can customize the VPN config by replacing dummy.ovpn with your own .ovpn file.
Make sure VPN.py uses shutil.which("openvpn") to dynamically find the binary (already done).
Logs are stored at /tmp/vpn_autostart.log for debugging VPN launch behavior.
For legacy devices, a delay (sleep 10) before autostart helps ensure the Linux container is ready.
You can verify that your tunnel is active by running: ps aux | grep openvpn