通常是否可以仅在Python脚本的作用域内使用OpenVPN连接?
例如,有这样的东西
import some_ovpn_library as sol
with sol.connection(config=config):
# OpenVPN connection is only active for this part of the script and not for anything else that is running in parallel on the same server
do_something
谢谢!
发布于 2020-08-18 20:14:41
不是的。网络函数位于内核中,对所有进程都以相同的方式工作。
在Linux中,您可能会使用iptables做一些技巧(例如,根据进程ID标记数据包,使用不同的路由表等)。但这并不是一个好方法。如果需要这样的隔离,可以考虑在单独的虚拟机中运行Python程序。
您可以从Python控制openvpn -运行、启动或停止它。
发布于 2020-08-18 21:24:34
如果您使用OpenVPN作为代理,这是可能的
import requests
proxies = {
'http': 'http://your.proxy.addres:port',
}
r = requests.get('http://somesite.com', proxies=proxies)
检查此处requests
发布于 2020-12-25 21:04:40
您可以尝试将openVPN连接作为进程,并在脚本末尾终止它,如下所示:
cmd = 'start /b cmd /c "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect config.ovpn'
args = shlex.split(cmd)
x = subprocess.Popen(args, shell=True)
...
...
...
try:
x.kill()
except:
pass
很容易将示例修改为适合您的操作系统。
https://stackoverflow.com/questions/63468260
复制相似问题