通过端口转发将udp服务器绑定到外部ip

bind udp server to external ip via port forwarding

端口转发完成后是否可以将udp套接字连接到外部ip?

var PORT = 33333;
var HOST = 'xxx.xx.xxx.xxx'; // my external ip

var dgram = require('dgram');
var server = dgram.createSocket('udp4');

server.on('listening', function () {
    var address = server.address();
    console.log('UDP Server listening on ' + address.address + ":" + 
address.port);
});

server.on('message', function (message, remote) {
    console.log(remote.address + ':' + remote.port +' - ' + 
message);

});

server.bind(PORT, HOST);

端口转发已设置(下)

我收到 'EADDRNOTAVAIL' 错误

Error: bind EADDRNOTAVAIL xxx.xx.xxx.xxx:33333

这可能吗?如果没有,我有哪些监听远程 IP 地址的选项?

谢谢 阿萨夫

您可以使用 var HOST = '0.0.0.0'; 在主机外部进行连接吗?

您不能绑定到非本地地址,也不需要。只需绑定到 0.0.0.0。端口转发将完成剩下的工作。