我需要能够在 python 脚本中打开我的 vpn,然后终止它。手动完成很容易(见下面链接中的图片),但我不知道如何编码。我听说过 subprocess.Popen 但不确定我是否在正确的轨道上。
我使用的是 Ubuntu 16.04,我的 VPN 是 TrustZone。
感谢您的帮助。
查尔斯
我一直在研究类似的东西,它在 Debian 和 Ubuntu 上与 python 一起工作得很好,它依赖于 openvpn 所以请确保在你的机器上安装 openvpn 使用:
Sudo apt-get update
Sudo apt-get install openvpn
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用这段简短的 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)
Run Code Online (Sandbox Code Playgroud)
将脚本放置在要运行它的位置,然后使用命令
Sudo chmod 777 vpn.py
Run Code Online (Sandbox Code Playgroud)
启动 vpn 客户端 运行
Sudo ./vpn.py
Run Code Online (Sandbox Code Playgroud)
希望它对您有用,祝您旅途愉快。
| 归档时间: |
|
| 查看次数: |
17126 次 |
| 最近记录: |