香港vps使用iptables實(shí)現(xiàn)端口轉(zhuǎn)發(fā)(中轉(zhuǎn)加速)iptables-pf.sh
1. 適用場景
經(jīng)常會遇到本地訪問遠(yuǎn)端服務(wù)時(shí)速度很慢。比如:ssh 或者 remotedesktop 國外的服務(wù)器、使用SS***時(shí)速度慢延遲高 等等
這時(shí)可以用一臺機(jī)器做跳板,來轉(zhuǎn)發(fā)你的數(shù)據(jù)
前提是這臺機(jī)器 到你本地網(wǎng)絡(luò) 和 到達(dá)遠(yuǎn)端服務(wù)器網(wǎng)絡(luò) 狀態(tài)良好。
舉例:你在北京遠(yuǎn)程桌面美國的一臺服務(wù)器延遲高經(jīng)常掉線,而香港的vps到北京和美國的網(wǎng)絡(luò)都很快,此時(shí)你就可以選擇香港的vps來做中轉(zhuǎn)。
iptables 可以簡單快速的實(shí)現(xiàn)這一功能。
2. 開啟ipv4路由轉(zhuǎn)發(fā)
Linux的防火墻功能是通過netfilter實(shí)現(xiàn)的,iptables和firewalld則是netfileter的管理工具
這里使用iptables來實(shí)現(xiàn)中轉(zhuǎn)功能
首先要啟用 linux 的 ipv4 路由轉(zhuǎn)發(fā)功能
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf# sysctl -p
3. 安裝并啟用iptables
# yum install -y iptables iptables-services# systemctl enable iptables# systemctl restart iptables
4. 編寫iptables規(guī)則
假設(shè):HK-vps IP 1.1.1.1,US-vps IP 2.2.2.2,服務(wù)端口 TCP-3389
# iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 2.2.2.2:3389# iptables -t nat -A POSTROUTING -p tcp -d 2.2.2.2 --dport 3389 -j SNAT --to-source 1.1.1.1
但實(shí)際上大多數(shù)vps只會配置一個內(nèi)網(wǎng)地址,然后再和你的公網(wǎng)地址一對一映射
比如 HK-vps 上 ifconfig 得到 IP 172.16.10.10
所以實(shí)際你應(yīng)該這樣寫
# iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 2.2.2.2:3389# iptables -t nat -A POSTROUTING -p tcp -d 2.2.2.2 --dport 3389 -j SNAT --to-source IP 172.16.10.10
然后當(dāng)你需要連接 US-vps 的 tcp-3389時(shí)
# telnet 2.2.2.2 3389
當(dāng)然你也可以不必讓中轉(zhuǎn)端口和實(shí)際目的端口號一樣
比如當(dāng)你 telnet 1.1.1.1 666 實(shí)際連接的是 2.2.2.2 3389
# iptables -t nat -A PREROUTING -p tcp --dport 666 -j DNAT --to-destination 2.2.2.2:3389# iptables -t nat -A POSTROUTING -p tcp -d 2.2.2.2 --dport 3389 -j SNAT --to-source IP 172.16.10.10
iptables規(guī)則寫完后,若驗(yàn)證失敗,檢查iptables是否啟動,或者查看vps安全策略是否放行匹配流量。
5. 保存iptables配置
海外服務(wù)器免費(fèi)測試:http://running-capacitor.com/