任何人可以帮忙吗?我被困。我有一个EC2实例,以及一个在本地工作正常的客户端/服务器Sun RPC应用程序。
服务器部件在EC2实例上运行正常(启动,等待客户端连接。
在我的家庭PC上运行的客户部分总是说:
localhost: RPC: Remote system error - Connection refused
我在客户端和服务器上都运行了rpcinfo -p,它们对我来说还不错:
EC2服务器:
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
536871049 2 udp 36832
536871049 2 tcp 43244
客户端:
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
199 1 udp 35634
199 1 tcp 43545
536871049 2 udp 52507
536871049 2 tcp 57459
536871048 1 udp 49297
536871048 1 tcp 54609
我已经在EC2实例上为TCP打开了端口111。它看起来从客户端开放:nping -p 111 ec2-xxx-xxx-xx-xx.us-west-west-compute.amazonaws.com返回响应。
有人有任何想法吗?
ah,正如Mootmoot指出的那样,我在本地运行我的客户。
但是,当我更改它时,它仍然没有用。除端口111外,您还必须打开服务正在运行的端口。我的程序有一个数字536871049,因此我必须为TCP打开端口43244(我正在使用的协议(。
但是,每当您重新启动服务时,端口号时都会随着模板服务器代码调用而变化:
transp = svctcp_create(RPC_ANYSOCK, 0, 0);
将服务绑定到arbitary港口。因此,我必须在已知端口上设置自己的插座,然后更改上面的呼叫以使用该套接字。
然后,您可以进入AWS A Ophs a Oph ot to ports 111上的EC2服务器的入站连接以及上面的端口设置。然后一切正常!