Linux 配置 ip 转发问题求教

349 天前
 wniming

楼主是直接在 linux 系统里进行 pppoe 拨号上网,拨号成功后会创建一个名为 ppp0 的网络接口,这个网络接口的 ip 就是运营商分配的动态公网 ip ,然后通过以下命令将这台 linux 作为其它设备的网关: iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

现在遇到的问题是其他设备将这台 linux 作为网关后大部分网站都打不开,但有各别网站能打开,

打不开的比如: https://www.jd.com

能打开的比如: https://mirrors.163.com

我怎么想也想不通为什么是这种情况,求大佬指点

1289 次点击
所在节点    程序员
16 条回复
Atsushi
349 天前
是不是 DNS 给了 V6 的地址,你只配了 V4 的转发?
huaxie1988
349 天前
设置 mtu 钳制
NessajCN
349 天前
wniming
349 天前
@huaxie1988 为什么要设置这个呢?
wniming
349 天前
@Atsushi 不是,都是 ipv4
busier
349 天前
多半是 MTU 问题!
huaxie1988
349 天前
@wniming wan 口 pppoe mtu 是 1492 ,lan 口以太网是 1500 。
mrzx
349 天前
1.mtu 必须 1492
2.mss 值,iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN- j TCPMSS --set-mss 1460


基本上就这 2 个问题,按我的经验判断,估计更大可能性是 2
wniming
349 天前
@busier @huaxie1988 @mrzx 我将 mtu 设置为 1492 试了不行
wniming
349 天前
@mrzx 设置 mss 值也试了不行的
huaxie1988
349 天前
@wniming mss 1452
wniming
349 天前
@mrzx @huaxie1988 感谢,解决了,v 友果然牛逼,能解释一下为什么吗?
wniming
349 天前
记录一下将 linux 配置成网关需要哪几条命令:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
mrzx
349 天前
@wniming
mss 不建议设置过小,会增加转发的负担。

现在网站前面经过层层网络转发,包的头太多了,TCP 自动协商最大分段量基本不会成功,所以要手动指定

其实你们买的大多数路由器,就跟傻瓜相机一样,都默认指定好了 mss,不需要你们额外配置。所以你们根本不知道,甚至不知道有这个概念,

你不是网络专业出身,不知道非常正常。

但针对一些企业路由器,mss 是需要一开始就要手动指定的。不过这是趋势,现在连 routeros/Mikrotik 的产品都会在 mange 处自动打上标记并修改 mss

@huaxie1988 没想到现在 1460 都不够用了,要 1452 了,好吧。。
julyclyde
347 天前
首先,“转发”不是由 masquerade 决定的
masquerade 只是在“决定要转发”之后做一些工作
mrzx
344 天前
@julyclyde 你说的不错,路由转发是转发,NAT 是 NAT ,在网络层面,属于完全两种类型的操作。
家庭路由器将这 2 步整合在一起了,所以一般人并不了解,不清楚底层原理。把它们混为一谈了.

不过能让这么多不懂网络的人能成功操作,配置路由器,家庭类的傻瓜路由器功劳真不小。把原本复杂的网络设置简化的如此简单让人轻易上手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/940431

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX