如何在移动设备和公网ip服务器之间build立p2p连接

这是一个涉及移动设备和具有公共IP的中央服务器的NAT问题。 他们都有一个http服务器。 我想要实现的是中央服务器可以通过NAT随时连接到移动设备。

在移动端:
我在移动设备上构build了一个小型的http服务器,它使用了一个4G SIM卡,但移动不了很多。 经过一番search和尝试,我认为移动networking设置为对称NAT。 所以我创build一个套接字,绑定到HTTP服务器正在监听的同一个端口。 我使用这个套接字连接到远程中央服务器,在NAT映射表中报告移动设备的公共IP和端口。

在远程中央服务器端:
这是我现在面临的问题。 服务器可以获取公网IP地址和端口映射到NAT表中的设备。 但是当服务器发送http请求时,移动设备不可达。 我认为原因是中央服务器在一个随机的端口上发送请求,所以对称NAT不能识别请求并禁止它们。

我脑海里有一些解决办法:
1.在中央服务器上build立一个代理服务器,它监听和发送同一个端口。 移动设备连接到此端口上的代理。 发送到移动设备的请求将首先经过代理,所以请求的源端口将与代理使用的监听端口相同。 我已经使用golang构build了http代理,但是我不知道是否可以使用golang来构build代理,并使用相同的端口进行监听和发送。
2.设置iptables mangle table,将请求中的端口改为移动设备。 所以它可以欺骗对称的NAT。

我倾向于解决scheme1,因为我认为它更简单,更清晰。

我有什么问题吗? 这是可行的吗? 任何build议表示赞赏。 提前致谢。