我目前在 Mac 上运行着 OpenVPN 连接。默认情况下,我的所有网络流量目前都通过此连接路由:http、ssh 等。我试图使用数据包过滤配置来确保某些流量通过我的标准“公共”连接,但似乎无法让它正常工作。我可能配置不正确,但下面是我所拥有的。我没有收到有关pfctl
我的配置的错误,但如果我curl http://ipecho.net/plain
,它会显示 VPN IP 而不是我的公共 IP。
注意:我的public
接口是以太网连接(en0),据我所知,utun0 是我的 OpenVPN 连接,列在 中ifconfig
。
pass out on en0 proto tcp from en0 to any port 80 flags S/SA keep state
与 SSH 相同。
pass out on en0 proto tcp from en to any port 22 flags S/SA keep state
我应该提到,我并不管理 OpenVPN 服务器。
答案1
我假设你使用 OpenVPN 只是为了访问你的家庭局域网。如果确实如此,有几种方法可以覆盖通常的
push "redirect-gateway def1"
在 server.conf 中设置。你会发现它们被描述在此 OpenVPN Wiki 页面上,其中最简单的一个就是将这四行添加到客户端配置文件中:
route 0.0.0.0 192.0.0.0 net_gateway
route 64.0.0.0 192.0.0.0 net_gateway
route 128.0.0.0 192.0.0.0 net_gateway
route 192.0.0.0 192.0.0.0 net_gateway
Wiki 上明确指出:
请注意,net_gateway 是 openvpn 的内部变量,不需要更改为任何内容
并且更令人放心的是,这四行代码会起作用......
如果您不知道您的服务器是否使用 def1,并且不想检查日志来弄清楚,只需假设他们确实使用 def1 并使用 4 条路由。无论如何,这都会有效。