Linux

通過 VPN 將流量路由到某個子網。Ping 正常,但沒有 TCP 流量返回

  • June 5, 2015

我有以下設置

  • 伺服器(192.168.21.11、172.17.4.6),通過 OpenVPN 路由 10.10.10.0/24
  • 客戶端 (192.168.21.9)
  • 路由器 (192.168.21.1)$$ m0n0wall $$具有 10.10.10.0/24 到 192.168.21.11 的靜態路由

在伺服器上,啟用了 NAT 轉發:

/sbin/iptables -t nat -A POSTROUTING -d 10.10.10.0/24 -o tun0 -j MASQUERADE
# cat /proc/sys/net/ipv4/ip_forward
1


# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

我能夠從客戶端到伺服器進行跟踪路由

# traceroute 10.10.10.10
traceroute to 10.10.10.10 (10.10.10.10), 30 hops max, 60 byte packets
1  (192.168.21.1)  0.283 ms  0.211 ms  0.165 ms  ## Router
2  (192.168.21.11)  0.262 ms  0.249 ms  0.213 ms ## Server
3  (172.17.4.1)  40.356 ms  83.965 ms  83.915 ms ## OpenVPN Subnet
4  (10.10.10.10)  83.778 ms  83.626 ms  83.488 ms

但我不知何故無法從客戶端連接到伺服器。這是 tcpdump 報告的內容,當我嘗試通過 SSH 連接到伺服器時:

# tcpdump -i tun0
tcpdump: WARNING: arptype 65534 not supported by libpcap - falling back to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
08:05:16.734848 IP 172.17.4.6.58710 > 10.10.10.10.ssh: S 2851123862:2851123862(0) win     5840 <mss 1460,sackOK,timestamp 597224955 0,nop,wscale 6>
08:05:16.776264 IP 10.10.10.10.ssh > 172.17.4.6.58710: S 658436853:658436853(0) ack 2851123863 win 5792 <mss 1366,sackOK,timestamp 296951268 597224955,nop,wscale 5>
08:05:20.986415 IP 10.10.10.10.ssh > 172.17.4.6.58710: S 658436853:658436853(0) ack 2851123863 win 5792 <mss 1366,sackOK,timestamp 296952321 597224955,nop,wscale 5>
08:05:26.985854 IP 10.10.10.10.ssh > 172.17.4.6.58710: S 658436853:658436853(0) ack 2851123863 win 5792 <mss 1366,sackOK,timestamp 296953821 597224955,nop,wscale 5>

似乎來自伺服器的數據包沒有路由回客戶端。

好吧,這不是 iptables 問題。問題是我使用 m0n0wall 作為路由器,並通過 m0n0wall 設置路由。由於 m0n0wall 通過防火牆推送這些路由,因此必須啟用“繞過同一介面上的流量的防火牆規則”規則以阻止 m0n0wall 停止數據包。

問題非常類似於: http: //forum.m0n0.ch/index.php?topic=381.0

引用自:https://serverfault.com/questions/227490