如何在 os x 上配置 NAT-pmp 以支持 utun 设备?
how to config NAT-pmp on os x to support utun device?
我使用 SimepleTunnel 项目,iPhone app PacketTunel 扩展与 tunnel_server 一起工作,但是 tunnel_server writev 数据包到 kerel,如何配置 pf 到 NAT 流量和数据包可以路由到 Internet ?
Mac OS X system Internetshare use /usr/libexec/natpmpd , 此应用程序仅支持以太网设备,不支持 ip 隧道设备
pf.conf
vpn_net = "192.168.3.0/24"
ext_if = "en0"
nat on en0 from $vpn_net to any -> (en0)
检查 pf 状态
rMBP:etc root# pfctl -sa
No ALTQ support in kernel
ALTQ related functions disabled
TRANSLATION RULES:
nat on en0 inet from 192.168.3.0/24 to any -> (en0) round-robin
我使用 tcpdump 检查写入状态
tcpdump -i utun0 并找到 192.168.3.0/16 到我的 dnsserver 192.168.0.24,但没有 dnserver 重播到 192.168.3.0/16
14:02:46.467038 IP 192.168.3.3.57257 > 192.168.0.245.domain: 38998+ A? guzzoni.apple.com. (35)
14:02:46.467877 IP 192.168.3.3.49218 > 192.168.0.245.domain: 59621+ A? www.apple.com. (31)
14:02:53.068894 IP 192.168.3.3.60834 > 192.168.0.245.domain: 52069+ A? apple.com. (27)
14:02:53.069427 IP 192.168.3.3.57257 > 192.168.0.245.domain: 38998+ A? guzzoni.apple.com. (35)
14:02:53.070072 IP 192.168.3.3.49218 > 192.168.0.245.domain: 59621+ A? www.apple.com. (31)
14:03:05.456122 IP 192.168.3.3.60834 > 192.168.0.245.domain: 52069+ A? apple.com. (27)
14:03:05.456653 IP 192.168.3.3.57257 > 192.168.0.245.domain: 38998+ A? guzzoni.apple.com. (35)
14:03:05.457140 IP 192.168.3.3.49218 > 192.168.0.245.domain: 59621+ A? www.apple.com. (31)
如何将 pf 让 utun 数据包配置为 NAT 流量?
nat-anchor "simpleTunnel"
load anchor "simpleTunnel" from "/etc/pf.anchors/simpleTunnel"
add upper lines to /etc/pf.conf
编辑 pf.anchors/simpleTunnel,添加
nat on en0 from 10.10.0.0/16 to any -> en0
然后
sudo sysctl net.inet.ip.forwarding=1
sudo sysctl net.inet.ip.fw.enable=1
sudo pfctl -evf /etc/pf.conf
我使用 SimepleTunnel 项目,iPhone app PacketTunel 扩展与 tunnel_server 一起工作,但是 tunnel_server writev 数据包到 kerel,如何配置 pf 到 NAT 流量和数据包可以路由到 Internet ?
Mac OS X system Internetshare use /usr/libexec/natpmpd , 此应用程序仅支持以太网设备,不支持 ip 隧道设备
pf.conf
vpn_net = "192.168.3.0/24"
ext_if = "en0"
nat on en0 from $vpn_net to any -> (en0)
检查 pf 状态
rMBP:etc root# pfctl -sa
No ALTQ support in kernel
ALTQ related functions disabled
TRANSLATION RULES:
nat on en0 inet from 192.168.3.0/24 to any -> (en0) round-robin
我使用 tcpdump 检查写入状态
tcpdump -i utun0 并找到 192.168.3.0/16 到我的 dnsserver 192.168.0.24,但没有 dnserver 重播到 192.168.3.0/16
14:02:46.467038 IP 192.168.3.3.57257 > 192.168.0.245.domain: 38998+ A? guzzoni.apple.com. (35)
14:02:46.467877 IP 192.168.3.3.49218 > 192.168.0.245.domain: 59621+ A? www.apple.com. (31)
14:02:53.068894 IP 192.168.3.3.60834 > 192.168.0.245.domain: 52069+ A? apple.com. (27)
14:02:53.069427 IP 192.168.3.3.57257 > 192.168.0.245.domain: 38998+ A? guzzoni.apple.com. (35)
14:02:53.070072 IP 192.168.3.3.49218 > 192.168.0.245.domain: 59621+ A? www.apple.com. (31)
14:03:05.456122 IP 192.168.3.3.60834 > 192.168.0.245.domain: 52069+ A? apple.com. (27)
14:03:05.456653 IP 192.168.3.3.57257 > 192.168.0.245.domain: 38998+ A? guzzoni.apple.com. (35)
14:03:05.457140 IP 192.168.3.3.49218 > 192.168.0.245.domain: 59621+ A? www.apple.com. (31)
如何将 pf 让 utun 数据包配置为 NAT 流量?
nat-anchor "simpleTunnel"
load anchor "simpleTunnel" from "/etc/pf.anchors/simpleTunnel"
add upper lines to /etc/pf.conf
编辑 pf.anchors/simpleTunnel,添加
nat on en0 from 10.10.0.0/16 to any -> en0
然后
sudo sysctl net.inet.ip.forwarding=1
sudo sysctl net.inet.ip.fw.enable=1
sudo pfctl -evf /etc/pf.conf