Ниже приведен IP-адрес моего хоста, на котором запущен django сервер
~ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
25: eth0@if26: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
Здесь IP-адреса 127.0.0.1 (lo)
и 172.17.0.2 (eth0@if26)
Netstat показывает таблица маршрутизации
~ # netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.17.0.1 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
~ #
Я планирую запустить сервер на 172.17.0.2
для удаленного доступа
Но перед этим я хочу протестировать запуск сервера на 172.17.0.0
, просто хочу посмотреть что происходит
$ python runserver 172.17.0.0:8888
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
April 30, 2020 - 07:10:35
Django version 3.0.5, using settings 'django_project_test.settings'
Starting development server at http://172.17.0.0:8888/
Quit the server with CONTROL-C.
Итак, сервер запускается
Netstat показывает, что порт слушает
~ # netstat -tlpn | grep 'LISTEN\|Address'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 172.17.0.0:8888 0.0.0.0:* LISTEN -
~ #
Я пытаюсь пропинговать 172.17.0.0
~ # ping 172.17.0.0
PING 172.17.0.0 (172.17.0.0): 56 data bytes
Stucks here
Также я тестирую wget
:
~ # wget "http://172.17.0.0:8888/"
--2020-04-30 07:16:38-- http://172.17.0.0:8888/
Connecting to 172.17.0.0:8888... failed: Network unreachable.
Итак, если сеть недоступна на 172.17.0.0
, то как python runserver 172.17.0.0:8888
работает без ошибок.
Потому что, если попытаться runserver
на любом IP-адресе, отличном от его собственного IP-адреса, т.е. 172.17.0.2
будет отображаться ошибка
Например: я пытаюсь runserver
на 172.17.0.1
или 172.17.0.3
показать ошибку Error: That IP address can't be assigned to.
~/app $ pipenv run python django_project_test/manage.py runserver 172.17.0.1:8888
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
April 30, 2020 - 07:37:10
Django version 3.0.5, using settings 'django_project_test.settings'
Starting development server at http://172.17.0.1:8888/
Quit the server with CONTROL-C.
Error: That IP address can't be assigned to.
~/app $
Так почему же 172.17.0.0 не показывает ту же ошибку, т.е. Error: That IP address can't be assigned to.