在Amazon EC2实例上设置Sun RPC



任何人可以帮忙吗?我被困。我有一个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服务器的入站连接以及上面的端口设置。然后一切正常!

最新更新