Я пытаюсь запустить службу gRPC на Linux, одновременно работая с клиентом на Windows.
Кажется, я не могу протестировать порт Linux, который я использую с моей машины Windows. Обе машины находятся в одной сети. 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
, являются локальными адресами обратной связи. Онитолькодоступны с той же машины. Вот почему ваша другая машина не может их видеть.
Вам нужно будет изменить способ запуска сервера. Чтобы указать ему привязываться к локальному сетевому адресу (не к внутреннему сетевому адресу).