在 Mac OS X Yosemite 上共享 OpenVPN

Leo*_*usa 7 networking mac vpn openvpn macos

直到 OS X 10.9 Mavericks,我一直以这种方式共享 OpenVPN 连接

但是,自从我将 Mac 更新到最新的操作系统后,此方法就不再有效。我做了一些谷歌搜索,似乎新的网络组件破坏了该功能。

是否可以将共享功能恢复为优胜美地操作系统之前的版本?或者有什么方法可以使用新的网络实用程序制定新的共享方法?

谢谢!

nft*_*ftw 8

为了在 OS X Mavericks、Yosemite 或 El Capitan 上共享您的 OpenVPN 连接,请输入以下命令以启用数据包转发:

sudo sysctl -w net.inet.ip.forwarding=1
sudo sysctl -w net.inet.ip.fw.enable=1 
Run Code Online (Sandbox Code Playgroud)

接下来将以下几行添加到/etc/pf.conf紧跟之后rdr-anchor "com.apple/*"

lan="{192.168.25.0/24}"
ext_if=en0
vpn_if="utun0"
nat on $ext_if from $lan to any -> ($ext_if)
nat on $vpn_if from $lan to any -> ($vpn_if)
Run Code Online (Sandbox Code Playgroud)

请注意,您应该将 LAN 地址更改为要通过 OpenVPN 连接路由的 LAN。ext_if应该是连接到局域网的接口。vpn_if应该是 OpenVPN 接口。我使用了 VyprVPN,它使用tun0而不是utun0因此您可能需要根据您的特定配置进行更改。

接下来运行以下命令加载配置:

sudo pfctl -d
sudo pfctl -F all
sudo pfctl -f /etc/pf.conf -e
Run Code Online (Sandbox Code Playgroud)

可以在此处找到执行此操作的说明:http : //www.douglas.wiki.br/doku.php?id= en: configuring_nat_on_mac_osx_yosemite

使用守护进程加载

如果您希望它自动加载,您可以查看此 repo https://github.com/essandess/osx-openvpn-server,您将在其中看到使用带有 .plist 文件的 shell 脚本创建一个示例启动时加载的守护进程。我刚刚添加/sbin/pfctl -f /etc/pf.conf -e到末尾enable-vpn-forward-nat.sh并执行以下操作:

sudo mkdir '/Library/Application Support/vpn'
sudo install -m 755 osx-openvpn-server/enable-vpn-forward-nat.sh '/Library/Application Support/vpn'
sudo install -m 644 net.openvpn.enable-vpn-forward-nat.plist /Library/LaunchDaemons
sudo launchctl load -w /Library/LaunchDaemons/net.openvpn.enable-vpn-forward-nat.plist
Run Code Online (Sandbox Code Playgroud)