Я использую две лазурные машины для запуска TCP_STREAM
тест от netperf между ними.
Удаленная машина называется mymachine-Standard-D8as-v4-премиум-диск-запад
а местный называется mymachine-Standard-D8as-v4-премиум-диск
.
Я выполняю следующие шаги:
- Начать
сетевой сервер
на удаленном сервере в порту 2333
:
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ sudo netserver -p 2333
Запуск сетевого сервера с хостом «IN(6)ADDR_ANY», портом «2333» и семейством AF_UNSPEC
убедитесь, что он запущен:
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ ps -ef | grep сетевой сервер
корень 4139 1 0 16:16 ? 00:00:00 /usr/bin/netserver
корень 26990 1 0 16:21 ? 00:00:00 сетевой сервер -p 2333
ubuntu 27011 1906 0 16:25 pts/0 00:00:00 grep --color=auto сетевой сервер
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$sudo lsof -i tcp:2333
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
netserver 26990 root 3u IPv6 66361 0t0 TCP *:2333 (СЛУШАТЬ)
- Получите IP-адрес удаленной машины:
enP6064s1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
эфир 00:0d:3a:f6:09:99 txqueuelen 1000 (Ethernet)
RX-пакеты 53433 байта 76754512 (76,7 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 8200 байт 1287344 (1,2 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
инет 10.2.0.27 сетевая маска 255.255.192.0 широковещательная рассылка 10.2.63.255
inet6 fe80::20d:3aff:fef6:999 prefixlen 64 scopeid 0x20<ссылка>
эфир 00:0d:3a:f6:09:99 txqueuelen 1000 (Ethernet)
RX-пакеты 12508 байт 80101094 (80,1 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 8136 байт 1286894 (1,2 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
инет 127.0.0.1 сетевая маска 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<хост>
loop txqueuelen 1000 (локальная петля)
RX-пакеты 190 байт 25942 (25,9 КБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 190 байт 25942 (25,9 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
Который показывает IP-адрес западной машины 10.2.0.27!
- Запустите netperf с локальной машины
netperf -H 10.2.0.27 -p 2333 -D 0.5 -c -C -l 20 -t TCP_STREAM -P 0 -f g -- -b 2 -D -o пропускная способность,единицы_пропускной способности
и теперь это дает мне:
установить контроль: вы уверены, что сетевой сервер прослушивает 10.2.0.27 через порт 2333?
create_control не удалось установить управляющее соединение с 0.0.0.0, порт 0, семейство адресов AF_UNSPEC, на 10.2.0.27, порт 2333, семейство адресов AF_INET.
Это так сбивает с толку! Потому что я убедился, что сетевой сервер прослушивает 10.2.0.27 через порт 2333. На самом деле, та же процедура отлично работает на машинах GCE.
Интересно, что может быть причиной этого и как это исправить.
Согласно комментариям от @waltinator, я посмотрел на IP-маршрут
, статус ufw
, sudo traceroute другая система
на обеих машинах.
На западной машине:
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ IP-маршрут
по умолчанию через 10.2.0.1 dev eth0 proto dhcp src 10.2.0.27 метрика 100
10.2.0.0/18 dev eth0 proto kernel scope link src 10.2.0.27
168.63.129.16 через 10.2.0.1 dev eth0 proto dhcp src 10.2.0.27 метрика 100
169.254.169.254 через 10.2.0.1 dev eth0 proto dhcp src 10.2.0.27 метрика 100
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ статус ufw
ОШИБКА: Вы должны быть root, чтобы запустить этот скрипт
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ sudo traceroute 10.1.0.62
traceroute до 10.1.0.62 (10.1.0.62), макс. 30 переходов, пакеты по 60 байт
1 * * *
...
30 * * *
На локальной машине:
ubuntu@jane-cr22-Standard-D8as-v4-premium-disk-0001:~$ IP-маршрут
по умолчанию через 10.1.0.1 dev eth0 proto dhcp src 10.1.0.62 метрика 100
10.1.0.0/18 dev eth0 proto kernel scope link src 10.1.0.62
168.63.129.16 через 10.1.0.1 dev eth0 proto dhcp src 10.1.0.62 метрика 100
169.254.169.254 через 10.1.0.1 dev eth0 proto dhcp src 10.1.0.62 метрика 100
ubuntu@mymachine-Standard-D8as-v4-premium-disk-0001:~$ статус ufw
ОШИБКА: Вы должны быть root, чтобы запустить этот скрипт
ubuntu@mymachine-Standard-D8as-v4-premium-disk-0001:~$ статус sudo ufw
Статус: неактивен
ubuntu@mymachine-Standard-D8as-v4-premium-disk-0001:~$ sudo traceroute 10.2.0.27
traceroute до 10.2.0.27 (10.2.0.27), макс. 30 переходов, пакеты по 60 байт
1 * * *
...
30 * * *
Кроме того, для западной машины я добавил правило входящего порта с приоритетом 100, позволяющее использовать любой источник и пункт назначения с диапазоном портов 2333. Но все равно локальная машина не может соединиться с удаленной.