仅当以 root 身份运行时,Curl 才使用指定的 OpenVPN 接口

仅当以 root 身份运行时,Curl 才使用指定的 OpenVPN 接口

我正在使用 Ubuntu Server 18.04.1 LTS (Bionic Beaver)。我运行 OpenVPN 时禁用了重定向网关,因为我不想流量默认使用它,只有一个特定的应用程序。这是我使用的命令:

sudo openvpn --config /etc/openvpn/CA\ Montreal.ovpn --pull-filter ignore redirect-gateway --daemon

然后如果我使用以下命令:

curl http://ipinfo.io/ip --interface tun0

我获取的是真实的外部 IP 地址,而不是 VPN 地址。但如果我运行以下命令:

sudo curl http://ipinfo.io/ip --interface tun0

然后我得到了我的 VPN IP 地址。我在其他程序中也遇到了这个问题,例如 traceroute。

$ traceroute 1.1.1.1 -i tun0
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
setsockopt SO_BINDTODEVICE: Operation not permitted
$ sudo traceroute 1.1.1.1 -i tun0
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  10.21.10.1 (10.21.10.1)  73.600 ms  74.061 ms  74.045 ms
 2  199.229.249.253 (199.229.249.253)  74.041 ms 199.229.249.254 (199.229.249.254)  74.193 ms 199.229.249.253 (199.229.249.253)  73.995 ms
 3  199.229.249.6 (199.229.249.6)  73.991 ms  74.143 ms 199.229.249.2 (199.229.249.2)  74.021 ms
 4  ae7-67.cr0-mtl1.ip4.gtt.net (98.124.173.249)  74.065 ms ae7-103.cr0-mtl1.ip4.gtt.net (98.124.173.101)  74.113 ms  74.162 ms
 5  cloudflare-gw.cr0-mtl1.ip4.gtt.net (69.174.23.50)  74.210 ms  74.157 ms  74.384 ms
 6  one.one.one.one (1.1.1.1)  74.052 ms  73.802 ms  73.843 ms

我该如何修复它,以便程序不需要 root 权限即可通过 VPN?

相关内容