2014年2月7日 星期五

[Linux] VPN (L2TP) 與使用 iptable 設定 Port forward @ Ubuntu 12.04

這樣的標題不是很恰當,但我暫時想不到好的方式。

使用情境:

  • 有 A, B 兩檯在不同國家的機器
  • 對 A 機器而言,無法直接連到 B 機器之國家內的服務
  • 解法透過 B 機器架設 VPN 服務,讓 A 透過 VPN 進入到 B 機器所在的國家網路
  • 這兩個國家的網路直連很慢,恰好 C 機器所在的國家,對這兩國連線都不錯

很繞口,但事實就擺在眼前 XD 這時候在 B 機器已經架好 VPN 服務了,從 A 也能夠連到,但是速度表現不佳,所以想要繞道從 C 機器所在的國家進去。

這時 C 機器就只需做 port forwarding 來處理即可,共有 UDP 500, 1701, 450 port 要處理:

$ iptables -A PREROUTING -t nat -i eth0 -p udp --dport 500 -j DNAT --to B_SERVER_IP:500
$ iptables -A PREROUTING -t nat -i eth0 -p udp --dport 4500 -j DNAT --to B_SERVER_IP:4500
$ iptables -A PREROUTING -t nat -i eth0 -p udp --dport 1701 -j DNAT --to B_SERVER_IP:1701
$ iptables -A FORWARD -p udp -d B_SERVER_IP --dport 500 -j ACCEPT
$ iptables -A FORWARD -p udp -d B_SERVER_IP --dport 4500 -j ACCEPT
$ iptables -A FORWARD -p udp -d B_SERVER_IP --dport 1701 -j ACCEPT

2 則留言:

  1. 假設A機器在T國, B機器在C國,
    能不能請您指點一下, C機器是在那國, 應該不是H國, 是J國嗎?
    謝謝!!

    回覆刪除