
我的 VPN 會過濾連接埠 25(以防止垃圾郵件),但我的 ISP 不會。 VPN 接管所有流量並更改預設網關?如何繞過VPN發送郵件?我希望除連接埠 25 之外的所有傳出流量繼續使用 VPN。
我的設定:
router 192.168.0.1 (this is the default gateway when VPN is not connected)
eth0 192.168.0.185
tun0 10.8.0.202
我嘗試使用 iptables 來執行 --dport 25 的操作,但我不太了解如何繞過防火牆。
我使用的是 Ubuntu 12.10。
另一件事是 192.168.0.185 運行多個伺服器(Web、郵件、ssh...)。 192.168.0.1 路由器將這些連接埠(80、443...)上的請求轉送至 192.168.0.185。為了阻止 VPN 幹擾此操作,我運行:
ip rule add from 192.168.0.185 table 10
ip route add default via 192.168.0.1 table 10
除了郵件之外,我的所有伺服器都開始工作(因為連接埠25 也有相同的問題?),所以我將postfix 更改為在2525 上運行(並讓路由器在那裡轉發連接埠25),這樣它就可以工作了。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.201 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.1 10.8.0.201 255.255.255.255 UGH 0 0 0 tun0
10.8.0.201 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
46.21.99.21 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 10.8.0.201 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
答案1
我想到了兩種可能性:
新增至外部郵件伺服器 IP 位址的靜態路由,該路由透過乙太網路介面明確路由,而不是預設路由。
透過提交連接埠 (587) 將外寄郵件傳送到外部郵件伺服器。
不過,最好的答案是在與 VPN 不同的(虛擬)電腦上執行郵件伺服器,以便您可以正確路由其流量。路由只能透過 IP 位址/網路指定,不能透過連接埠號指定。