我如何强制一个特定的MTU只有特定的TCP端口?

背景

我在现场部署了一套embedded式硬件。 这些远程机器在运行Ubuntu的AWS上连接到我的服务器,我使用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上select性地更改MTU的信息(例如,我发现的所有信息都是关于全局更改的, 不是我想要的)。

我该怎么做,以便TCP端口12345上的所有连接都得到我想要的MTU?

根据Joyent支持团队的反馈,这似乎是不可能的。 MTU只能在接口级上设置,而不能像Linux那样通过防火墙设置。

请注意,理论上可以通过setsockopt调用(通过TCP_MAXSEG选项)更改套接字的MTU,但目前没有可用于node.js的扩展来执行此操作。 其他应用程序平台应该使用setsockopt调用。