公司上網環境是使用iptables+squid+goagent,提供代理上網,×××網關功能。
本來相安無事,但由於有特殊工作需求,需要撥入國外***(部分人不想使用goagent覺得麻煩)。
得到美國pptp ***帳號後客戶端竟然無法撥入,提示619錯誤。
但由於本事該網關上裝有pptp server,連接該***測試可以連接,偏偏這個***無法正常工作。
公司裏面通過無線上網,遂考慮是否是刷入的dd-wrt固件中***穿越沒有開啓,經過檢查已經全部開啓。
所以問題可能還是出在網關上。
檢查iptables策略後發現並無異常,也允許了1723端口和gre協議,但是均無效,依然619錯誤。
仔細一想,SNAT默認會有所有的流量全部進行轉換,如果不設置***穿越可能無法正常工作。遂google之…
查閱資料後發現,iptables需要加載相對應模塊才能實現***穿越:
- #modprobe ip_nat_pptp
- #modprobe ip_nat_proto_gre
- #modprobe ip_conntrack_pptp
同樣還有ftp穿越:
- #modprobe ip_nat_ftp
#執行後可以用lsmod命令查看是否加載成功
備註: 如果想讓iptables自動加載以上模塊,可以編輯/etc/sysconfig/iptables-config
文件,在IPTABLES_MODULES=""
字段中添加以上模塊。例如:
- IPTABLES_MODULES="ip_conntrack_pptp ip_conntrack_ftp ip_nat_pptp ip_nat_proto_gre ip_nat_ftp"
重啓iptables即可
執行以上命令後再測試,順利連接成功!
但是讓我鬱悶的是,撥入其他***正常,唯獨這個***需要加載以上模塊,不知爲何。
小技巧:
怎麼判斷是否是遠端***異常,可以利用telnet工具, “telnet pptp服務器ip 遠程端口”看是否連接上。
原文連接:Darren博客