關於鏈接pptpd_***後沒法訪問部分網頁的問題

1. 確認options.pptpd有以下兩行php

  1. mtu 1440tcp

  2. mru 1440ide

2. 須要添加一條iptables規則:post

  1. iptables -I FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtuthis

這樣就能夠打開了。


另外,給出一個臨時的解決方案,當mtu報錯的時候能夠直接了本地修改mtu值:
spa

  1. ifconfig ppp0 mtu 1440orm

 

關於這條命令的詳細說明繼續往下看
-------------------

參考一個新的解決方案,在5#
xml

iptables -A FORWARD -p tcp –syn -s 192.168.100.0/24 -j TCPMSS –set-mss 1356ip

 

 

 

This sounds like a common problem with MTU size. 
If you're adding iptables rules to accept traffic then that's the cause. 
Traffic must be clamped to the MTU size in iptables before it hits a rule that accepts it. 
Post your firewall script, any ××× specific scripts that contain iptables rules, and the output of this command.
ci

  1. iptables -vnL FORWARD

You should be able to fix it by adding this command to the end of your ××× script or firewall script, whichever has your iptables rules that are accepting traffic.

  1. iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

有看到一種iptables的寫法,這個大概能夠不修改mtu?以下:
mtu:Maxitum Transmission Unit 
最大傳輸單元。
mss:Maxitum Segment Size 
最大分段大小。
mtu  mss(
應用層數據)+tcp包頭+IP包頭
mss
大小是通信雙方在創建TCP鏈接時根據雙方提供的 MSS值的最小值肯定爲此次鏈接的最大MSS值。
tcp
數據包包頭大小20Byte
ip
數據包包頭大小20Byte
若是超過mtu的大小就須要對ip報文進行分片。
若是ip報文中有DFDonot Fragment)標記就表示不可分片。
若是報文超過MTU值又不能分片,就會丟棄報文,返回一個錯誤信息unreachable-need to frag(不可到達,須要分片)。 如圖所示。
出現這種現象的解決辦法以下:
修改數據報文的mss大小。


iptables -A FORWARD -p tcp –syn -s 192.168.100.0/24 -j TCPMSS –set-mss 1356



凡是來自192.168.100.0/24網段的tcp包,mss設置爲1356.

相關文章
相關標籤/搜索