I set up a Debian server VM in Parallels Desktop. I configured it to use the Bridge network. DHCP is enabled, however I configured the VM to use a static IP.
On Debian within my VM the web server runs (127.0.0.1:5000) and the network is properly configured:
$ sudo cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp0s5
# iface enp0s5 inet dhcp
iface enp0s5 inet static
address 10.211.55.201
netmask 255.255.255.0
gateway 10.211.55.1
$ sudo ifconfig
enp0s5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.211.55.201 netmask 255.255.255.0 broadcast 10.211.55.255
inet6 fe80::21c:42ff:fedf:37b prefixlen 64 scopeid 0x20<link>
ether 00:1c:42:df:03:7b txqueuelen 1000 (Ethernet)
RX packets 564 bytes 78327 (76.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 308 bytes 49738 (48.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 15 bytes 1394 (1.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15 bytes 1394 (1.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ netstat -pln
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 899/python3
tcp6 0 0 :::22 :::* LISTEN -
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 13667 840/systemd /run/user/1000/systemd/private
unix 2 [ ACC ] STREAM LISTENING 13673 840/systemd /run/user/1000/gnupg/S.dirmngr
unix 2 [ ACC ] STREAM LISTENING 13675 840/systemd /run/user/1000/gnupg/S.gpg-agent.browser
unix 2 [ ACC ] STREAM LISTENING 13677 840/systemd /run/user/1000/gnupg/S.gpg-agent.extra
unix 2 [ ACC ] STREAM LISTENING 13679 840/systemd /run/user/1000/gnupg/S.gpg-agent.ssh
unix 2 [ ACC ] STREAM LISTENING 13681 840/systemd /run/user/1000/gnupg/S.gpg-agent
unix 2 [ ACC ] STREAM LISTENING 11990 - /run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 13009 - /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 13011 - /run/systemd/userdb/io.systemd.DynamicUser
unix 2 [ ACC ] STREAM LISTENING 13012 - /run/systemd/io.system.ManagedOOM
unix 2 [ ACC ] STREAM LISTENING 13020 - /run/lvm/lvmpolld.socket
unix 2 [ ACC ] STREAM LISTENING 13024 - /run/systemd/fsck.progress
unix 2 [ ACC ] STREAM LISTENING 13032 - /run/systemd/journal/stdout
unix 2 [ ACC ] SEQPACKET LISTENING 13034 - /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 10664 - /run/systemd/journal/io.systemd.journal
$ curl http://127.0.0.1:5000
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
...
Now I try to access the web server from the host (MacOS):
> ping 10.211.55.201
PING 10.211.55.201 (10.211.55.201): 56 data bytes
64 bytes from 10.211.55.201: icmp_seq=0 ttl=64 time=1.425 ms
64 bytes from 10.211.55.201: icmp_seq=1 ttl=64 time=0.317 ms
64 bytes from 10.211.55.201: icmp_seq=2 ttl=64 time=0.290 ms
64 bytes from 10.211.55.201: icmp_seq=3 ttl=64 time=0.386 ms
^C
--- 10.211.55.201 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.290/0.605/1.425/0.475 ms
> ssh [email protected] echo test
test
> curl http://10.211.55.201:5000
curl: (7) Failed to connect to 10.211.55.201 port 5000 after 1011 ms: Connection refused
The web server on port 5000 is oxen-io/oxen-observer. I installed all dependencies and started the server accordingly using FLASK_APP=observer flask run --reload --debugger. It's a Python project that uses Flask to host a web server and I want to start it for debugging purposes. I haven't changed any Flask configuration, I just updated my contrib/devnet-observer.ini:
[uwsgi]
chdir = /home/marty/proj/oxen/observer
socket = devnet.wsgi
plugins = python3,logfile
processes = 6
manage-script-name = true
mount = /=observer:app
logger = file:logfile=/home/marty/proj/oxen/observer/uwsgi.log,maxsize=1048576
It's definitely a fauly configuration as the webserver returns a 500, but that shouldn't prevent my host from retrieving the status code. I want to reach the web server from my host before moving on to further problems. The web server is clearly reachable from localhost, so what could be the issue that I can't reach it from my host?


