背景
我在现场部署了一套嵌入式硬件。这些远程机器连接到我在 AWS 上运行 Ubuntu 的服务器,我使用链iptables
mangle
将 MTU 降低到 500,以便这些设备正常运行。作为参考,这是iptables
我使用的规则:
-A POSTROUTING -p tcp --sport 12345 --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --set-mss 500
当前问题
我正在尝试使用 Joyent Cloud 启动一些服务器SmartOS
,但我找不到任何关于像在 Linux 上那样有选择地更改 MTU 的信息(例如,我找到的所有信息都是关于更改它全球,即不是我想要的是)。
我该怎么做才能使 TCP 端口 12345 上的所有连接都获得我想要的 MTU?
答案1
根据 Joyent 支持团队的反馈,这似乎是不可能的。MTU 只能在接口级别设置,而不能像 Linux 那样通过防火墙设置。
请注意,理论上可以通过setsockopt
调用(通过TCP_MAXSEG
选项)更改套接字的 MTU,但目前没有可用于 node.js 的扩展来执行此操作。其他应用平台应使用该setsockopt
调用。