我需要能够在python脚本中打开我的vpn然后终止它。手动操作非常简单(参见下面链接中的图片),但我不知道如何编写代码。我听说过subprocess.Popen但不确定我是否在正确的轨道上。
manual way of turning on my vpn
我使用的是Ubuntu 16.04,我的VPN是TrustZone。
感谢您的帮助。
查尔斯
答案 0 :(得分:0)
从该屏幕截图中进行疯狂搜索,您的VPN似乎是使用NetworkManager配置的。在这种情况下,以下命令将启动和停止您的VPN:
import os
os.system('nmcli c up <VPN_NAME>') # Start the VPN
os.system('nmcli c down <VPN_NAME>') # Stop the VPN
答案 1 :(得分:0)
我一直在做类似的东西,它在Debian和Ubuntu上使用python工作正常,它依赖于openvpn 因此,请确保使用以下命令在您的计算机上安装openvpn:
Sudo apt-get update
Sudo apt-get install openvpn
然后你可以使用这个小的和平的python代码(vpn.py)运行vpn确保你使用sudo并在运行之前使用文件上的chmod 777。 在您使用trustzone的情况下,请确保生成扩展名为.ovpn
的配置文件https://trust.zone/setup/ubuntu/ovpn/za
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests, os, sys, subprocess, time
path = '/home/user/Download/trustedzone.ovpn'
with open("/home/user/Download/trustedzone.ovpn", "a") as myfile:
myfile.write('\nscript-security 2\nup /etc/openvpn/update-resolv-conf\ndown /etc/openvpn/update-resolv-conf')
myfile.close()
x = subprocess.Popen(['sudo', 'openvpn', '--auth-nocache', '--config', path])
try:
while True:
time.sleep(600)
# termination with Ctrl+C
except:
try:
x.kill()
except:
pass
while x.poll() != 0:
time.sleep(1)
将脚本放在要运行它的位置,然后使用命令
Sudo chmod 777 vpn.py
启动vpn客户端运行
Sudo ./vpn.py
希望它对你有用,有一个美好的旅程。