Ich versuche, einen gRPC-Dienst unter Linux auszuführen, während ich einen Client unter Windows ausführe.
Ich kann den Linux-Port, den ich von meinem Windows-Rechner aus verwende, anscheinend nicht testen. Beide Rechner befinden sich im selben Netzwerk. Windows 10 und CentOS 8.
Folgendes gibt mir 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
Ich weiß nicht viel über Linux, aber hier sind einige Befehle, mit denen ich überprüft habe, ob der Port geöffnet ist und der Dienst, der ihn verwendet, ausgeführt wird, sowie die Ergebnisse, die ich erhalten habe:
[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:
Ich habe auch versucht, Firewalls unter Windows und Linux zu deaktivieren, um zu prüfen, ob das helfen könnte, aber ohne Erfolg.
Antwort1
127.0.0.1
und ::1
sind lokale Loopback-Adressen. Sie sindnurvom selben Rechner aus zugänglich. Aus diesem Grund kann Ihr anderer Rechner sie nicht sehen.
Sie müssen die Art und Weise ändern, wie Sie den Server starten. Weisen Sie ihn an, an eine lokale Netzwerkadresse (nicht an eine interne Netzwerkadresse) gebunden zu werden.