Здравствуйте, yenik, Вы писали:
Y>Windows 10, WSL 2, Ubuntu 24.04 Y>Нужно из WSL иметь доступ к хосту Windows. Однако Windows ни по какому IP не пингуется. Y>Прочитал тут, не помогло.
Y>ping "$(hostname).local" Y>Name or service not known
Это если у вас роутер умный и сам имена выдаёт типа host.local, но это не везде
Y>IP, который в /etc/resolv.conf не пингуется.
Y>В дефендере все порты открыл. Подскажите, что я делаю не так?
Пинг отключен. Винды 10 и 11 в этом плане помимо антивируса и брендмауера могут просто отключить пинг.
Здравствуйте, yenik, Вы писали:
Y>ping "$(hostname).local" Y>Name or service not known
Имена, которые кончаются на .local, это Multicast DNS. Чтобы он работал, он должен быть разрешен. На линухе должен быть установлен и запущен avahi-daemon, на венде не знаю, что.
Нет, в винде пинг не отключён. Telnet я первым делом попробовал, думал, что порты недоступны.
На компьютере ещё установлен VirtualBox, в нём линуксовые виртуалки. С виртуалок винда и пингуется, и сервисы запрашиваются успешно. Этот текст я прочитал, но как здесь написано, у меня с WSL не получается. Только с VirtualBox получается. Ещё openSUSE в WSL поставил, тоже не помогло.
Accessing Windows networking apps from Linux (host IP)
If you want to access a networking app running on Windows (for example an app running on a NodeJS or SQL server) from your Linux distribution (ie Ubuntu), then you need to use the IP address of your host machine. While this is not a common scenario, you can follow these steps to make it work.
Obtain the IP address of your host machine by running this command from your Linux distribution: ip route show | grep -i default | awk '{ print $3}'
Connect to any Windows server using the copied IP address.
The picture below shows an example of this by connecting to a Node.js server running in Windows via curl.
Видно моя WSL заколдована. Придётся виртуалками обходиться.
_>И ping 172.31.192.1 из линуха и ping 172.31.198.124 из винды молчат?
ping 172.31.198.124 из винды — OK
ping 172.31.192.1 из винды — OK
ping 172.31.198.124 из линуха — OK
ping 172.31.192.1 из линуха молчит. Тогда как именно он мне и нужен.
Здравствуйте, yenik, Вы писали:
_>>И ping 172.31.192.1 из линуха и ping 172.31.198.124 из винды молчат?
Y>ping 172.31.198.124 из винды — OK Y>ping 172.31.192.1 из винды — OK Y>ping 172.31.198.124 из линуха — OK Y>ping 172.31.192.1 из линуха молчит. Тогда как именно он мне и нужен.
А что за бардак у вас с адресами?
Почему у вас в линуксе сеть 172.31.198.112, а в винде сеть 172.31.192.0 ?
Должны быть одинаковые сети (например 172.29.240.0):
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:3a:4a:b0 brd ff:ff:ff:ff:ff:ff
inet 172.29.240.104/20 brd 172.29.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe3a:4ab0/64 scope link
valid_lft forever preferred_lft forever
$ ip r
default via 172.29.240.1 dev eth0 proto kernel
172.29.240.0/20 dev eth0 proto kernel scope link src 172.29.240.104
_>А что за бардак у вас с адресами? _>Почему у вас в линуксе сеть 172.31.198.112, а в винде сеть 172.31.192.0 ?
С этим надо обращаться к Microsoft. Всё по умолчанию.
_>Добавьте адрес _>sudo ip addr flush eth0 _>sudo ip addr add dev eth0 172.31.192.2/28
_>или так _>sudo ifconfig eth0 172.31.192.2/28 up
Здравствуйте, yenik, Вы писали: _>>И ping 172.31.192.1 из линуха и ping 172.31.198.124 из винды молчат? Y>ping 172.31.198.124 из винды — OK Y>ping 172.31.192.1 из винды — OK Y>ping 172.31.198.124 из линуха — OK Y>ping 172.31.192.1 из линуха молчит. Тогда как именно он мне и нужен. win->wsl + win->self + wsl->self+ wsl->win-
Т.е. не отвечает винда. Отключите фаервол совсем (на время)
в wsl: nc -l -p 12345 -i 1
в винде: telnet 172.31.198.124 12345
и потопчите клавиатуру
ps: еще вариант
в wsl: sudo tcpdump
в винде: ping 172.31.198.124
А что сделать пытаемся? Да, это брандмауэр, надо было сразу проверить конечно. Если в свойствах Windows Defender Firewall в публичных сетях сделать исключение для vEthernet (WSL), то проблема решается. Только это исключение не сохраняется при перезагрузке.