公司上網環境是使用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部落格