我正在尝试在 Linux 上运行 gRPC 服务,同时在 Windows 上运行客户端。
我似乎无法测试我在 Windows 机器上使用的 Linux 端口。两台机器都在同一个网络中。 Windows 10 和 CentOS 8。
这是 Powershell 给我的:
PS C:\WINDOWS\system32> tnc server_ip -p 55555 -Debug
DEBUG: TCP connect to (server_ip : 55555) threw exception: Exception
calling "GetResult" with "0" argument(s): "No connection
could be made because the target machine actively refused it
server_ip :55555"
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is
"Y"): y
WARNING: TCP connect to (server_ip : 55555) failed
ComputerName : server_ip
RemoteAddress : server_ip
RemotePort : 55555
InterfaceAlias : Ethernet
SourceAddress : client_ip
PingSucceeded : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False
我对 Linux 不太了解,但这里有一些我尝试检查端口是否打开以及使用它的服务是否正在运行的命令,以及我得到的结果:
[user@localhost ~]$ grep -w 55555 /etc/services
test 55555/tcp # TestService
[user@localhost ~]$ sudo lsof -i -P -n | grep LISTEN
[sudo] password for user:
GrpcServi 10933 user 166u IPv4 1090871 0t0 TCP 127.0.0.1:55555 (LISTEN)
GrpcServi 10933 user 167u IPv6 1090874 0t0 TCP [::1]:55555 (LISTEN)
[user@localhost ~]$ sudo netstat -tulpn | grep LISTEN
tcp 0 0 127.0.0.1:55555 0.0.0.0:* LISTEN 10933/./GrpcService
tcp6 0 0 ::1:55555 :::* LISTEN 10933/./GrpcService
[user@localhost ~]$ sudo netstat -tulpn | grep :55555
tcp 0 0 127.0.0.1:55555 0.0.0.0:* LISTEN 10933/./GrpcService
tcp6 0 0 ::1:55555 :::* LISTEN 10933/./GrpcService
[user@localhost ~]$ sudo ss -tulpn | grep LISTEN
tcp LISTEN 0 128 127.0.0.1:55555 0.0.0.0:* users:
(("GrpcService",pid=10933,fd=166))
tcp LISTEN 0 128 [::1]:55555 [::]:* users:
(("GrpcService",pid=10933,fd=167))
[user@localhost ~]$ sudo ss -tulpn | grep ':55555'
tcp LISTEN 0 128 127.0.0.1:55555 0.0.0.0:* users:
(("GrpcService",pid=10933,fd=166))
tcp LISTEN 0 128 [::1]:55555 [::]:* users:
(("GrpcService",pid=10933,fd=167))
[user@localhost ~]$ sudo lsof -i -P -n | grep LISTEN
GrpcServi 10933 user 166u IPv4 1090871 0t0 TCP 127.0.0.1:55555 (LISTEN)
GrpcServi 10933 user 167u IPv6 1090874 0t0 TCP [::1]:55555 (LISTEN)
[user@localhost ~]$ sudo firewall-cmd --zone=public --list-all
[sudo] password for user:
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: cockpit dhcpv6-client ssh
ports: 3389/tcp 3389/udp 55555/tcp
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
我还尝试在 Windows 和 Linux 上禁用防火墙以检查是否有帮助,但没有效果。
答案1
127.0.0.1
和 ::1
是本地环回地址。他们是仅有的可从同一台机器访问。这就是为什么您的其他机器看不到它们。
您将需要更改启动服务器的方式。告诉它绑定到本地网络地址(而不是内部网络地址)。