讓遠端可 VNC 或 AOC 進 NAT 內的電腦(IPTABLES)

讓遠端外面的機器可以連進 NAT 的某台電腦, 只要 iptables 設定兩個 port 即可.

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 5800 -i ppp0 -j DNAT --to 192.168.1.1
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 5900 -i ppp0 -j DNAT --to 192.168.1.1

  • ppp0: 看對外的網卡是哪個, 就換成哪個 ex: eth0, eth1
  • 192.168.1.1: 要連進內部的 IP 是哪個, 由此設定.

再來下面是給電玩用的, AOE(AOC 世紀帝國), CS... 等.(此 script 參考自: Linux iptables 開啟 AOE 讓NAT可以玩啦!)

# AOE
echo 1 > /proc/sys/net/ipv4/ip_forward
IP_LOCAL=192.168.1.1
IPTABLES=/sbin/iptables

$IPTABLES -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# for Serious Sam
$IPTABLES -t nat -A PREROUTING -p tcp --dport 4000 -i ppp0 -j DNAT --to $IP_LOCAL
$IPTABLES -t nat -A PREROUTING -p udp --dport 25600 -i ppp0 -j DNAT --to $IP_LOCAL

# for AOE & AOC (require DirectPlay)
$IPTABLES -t nat -A PREROUTING -p tcp --dport 1100:5000 -i ppp0 -j DNAT --to $IP_LOCAL
$IPTABLES -t nat -A PREROUTING -p udp --dport 1100:7000 -i ppp0 -j DNAT --to $IP_LOCAL

# for DirectPlay
$IPTABLES -t nat -A PREROUTING -p tcp --dport 47624 -i ppp0 -j DNAT --to $IP_LOCAL
$IPTABLES -t nat -A PREROUTING -p udp --dport 47624 -i ppp0 -j DNAT --to $IP_LOCAL
$IPTABLES -t nat -A PREROUTING -p tcp --dport 2300:2400 -i ppp0 -j DNAT --to $IP_LOCAL
$IPTABLES -t nat -A PREROUTING -p udp --dport 2300:2400 -i ppp0 -j DNAT --to $IP_LOCAL

# for UnrealTournament
$IPTABLES -t nat -A PREROUTING -p udp --dport 7777:8000 -i ppp0 -j DNAT --to $IP_LOCAL
# for Server
$IPTABLES -t nat -A PREROUTING -p udp --dport 27900 -i ppp0 -j DNAT --to $IP_LOCAL

# for CounterStrike
$IPTABLES -t nat -A PREROUTING -p tcp --dport 27005:27015 -i ppp0 -j DNAT --to $IP_LOCAL
$IPTABLES -t nat -A PREROUTING -p udp --dport 27005:27015 -i ppp0 -j DNAT --to $IP_LOCAL

然後打完電動後記得把 port 關掉, 最簡單的方法就是重新設定 iptables, 再把自己設的規則設回去.

/sbin/iptables --flush
/sbin/iptables --table nat --flush
/sbin/iptables --delete-chain
/sbin/iptables --table nat --delete-chain

下述兩種是 NAT 簡單的設法(挑其一修改使用即可):

/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料