Доступ к Windows из WSL
От: yenik  
Дата: 22.07.24 12:29
Оценка:
Windows 10, WSL 2, Ubuntu 24.04
Нужно из WSL иметь доступ к хосту Windows. Однако Windows ни по какому IP не пингуется.
Прочитал тут, не помогло.

ping "$(hostname).local"
Name or service not known

IP, который в /etc/resolv.conf не пингуется.

В дефендере все порты открыл. Подскажите, что я делаю не так?
Отредактировано 22.07.2024 12:46 yenik . Предыдущая версия .
wsl windows linux ip
Re: Доступ к Windows из WSL
От: kov_serg Россия  
Дата: 22.07.24 17:19
Оценка: +1
Здравствуйте, 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 в этом плане помимо антивируса и брендмауера могут просто отключить пинг.

используйте nc, telnet или iperf

или во из линуха по тыкайте винду: nmap `ip route | grep default | awk '{print $3}'` -Pn
Re: Доступ к Windows из WSL
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.07.24 19:30
Оценка: 2 (1)
Здравствуйте, yenik, Вы писали:

Y>ping "$(hostname).local"

Y>Name or service not known

Имена, которые кончаются на .local, это Multicast DNS. Чтобы он работал, он должен быть разрешен. На линухе должен быть установлен и запущен avahi-daemon, на венде не знаю, что.
Re[2]: Доступ к Windows из WSL
От: yenik  
Дата: 23.07.24 06:25
Оценка:
Нет, в винде пинг не отключён. 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 заколдована. Придётся виртуалками обходиться.
Re: Доступ к Windows из WSL
От: tryAnother  
Дата: 23.07.24 06:37
Оценка:
А что показывает ifconfig в WSL, и ipconfig в win?
Re[2]: Доступ к Windows из WSL
От: yenik  
Дата: 23.07.24 06:50
Оценка:
A>А что показывает ifconfig в WSL, и ipconfig в win?

ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1350
        inet 172.31.198.124  netmask 255.255.240.0  broadcast 172.31.207.255
        inet6 fe80::215:5dff:fe36:c822  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:36:c8:22  txqueuelen 1000  (Ethernet)
        RX packets 178  bytes 216909 (216.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 155  bytes 10693 (10.6 KB)
        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 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


ip route
default via 172.31.192.1 dev eth0 proto kernel
172.31.192.0/20 dev eth0 proto kernel scope link src 172.31.198.124


ipconfig

Windows IP Configuration

Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : CPiOSDefaultDNS
   Link-local IPv6 Address . . . . . : fe80::1b27:8c45:ffa6:635f%11
   IPv4 Address. . . . . . . . . . . : 172.20.27.213
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter Ethernet 3:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::2340:a55d:13a2:b380%7
   IPv4 Address. . . . . . . . . . . : 192.168.56.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Wireless LAN adapter Local Area Connection* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Local Area Connection* 2:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . : w.mifi
   Link-local IPv6 Address . . . . . : fe80::1004:b06a:a2b4:ef76%3
   IPv4 Address. . . . . . . . . . . : 192.168.0.35
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::70c1:bc0:77b8:cd10%60
   IPv4 Address. . . . . . . . . . . : 172.31.192.1
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :
Re[3]: Доступ к Windows из WSL
От: kov_serg Россия  
Дата: 23.07.24 07:02
Оценка:
Здравствуйте, yenik, Вы писали:

A>>А что показывает ifconfig в WSL, и ipconfig в win?


Y>        inet 172.31.198.124  netmask 255.255.240.0  broadcast 172.31.207.255
Y>ip route
Y>default via 172.31.192.1 dev eth0 proto kernel
Y>172.31.192.0/20 dev eth0 proto kernel scope link src 172.31.198.124

Y>   IPv4 Address. . . . . . . . . . . : 172.31.192.1


И ping 172.31.192.1 из линуха и ping 172.31.198.124 из винды молчат?
Re[4]: Доступ к Windows из WSL
От: yenik  
Дата: 23.07.24 07:25
Оценка:
_>И 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 из линуха молчит. Тогда как именно он мне и нужен.
Re[5]: Доступ к Windows из WSL
От: kov_serg Россия  
Дата: 23.07.24 08:19
Оценка:
Здравствуйте, 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

>ipconfig
...
Адаптер Ethernet vEthernet (WSL):                                                                                                                                                                                                                  DNS-суффикс подключения . . . . . :
Локальный IPv6-адрес канала . . . : fe80::e003:351a:2d4f:9eb3%21
IPv4-адрес. . . . . . . . . . . . : 172.29.240.1
Маска подсети . . . . . . . . . . : 255.255.240.0
Основной шлюз. . . . . . . . . :


Добавьте адрес
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
Отредактировано 23.07.2024 8:22 kov_serg . Предыдущая версия .
Re[6]: Доступ к Windows из WSL
От: yenik  
Дата: 23.07.24 09:21
Оценка:
_>А что за бардак у вас с адресами?
_>Почему у вас в линуксе сеть 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

Не помогло.
Re[6]: Доступ к Windows из WSL
От: Stanislaw K СССР  
Дата: 23.07.24 09:27
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Здравствуйте, yenik, Вы писали:



_>А что за бардак у вас с адресами?

_>Почему у вас в линуксе сеть 172.31.198.112, а в винде сеть 172.31.192.0 ?

потому что это правильно?

subnet 172.31.192.0
netmask 255.255.240.0
subnet size 4096

1st address 172.31.192.1
last address 172.31.207.254
broadcast 172.31.207.255


_>Должны быть одинаковые сети (например 172.29.240.0):


Это и есть одна "одинаковая" сеть.
Все проблемы от жадности и глупости
Re[7]: Доступ к Windows из WSL
От: kov_serg Россия  
Дата: 23.07.24 09:56
Оценка:
Здравствуйте, Stanislaw K, Вы писали:

SK>Это и есть одна "одинаковая" сеть.

Почему-то увидел маску 255.255.255.240 вместо 255.255.240.0
Re[5]: Доступ к Windows из WSL
От: kov_serg Россия  
Дата: 23.07.24 10:12
Оценка: 4 (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 из линуха молчит. Тогда как именно он мне и нужен.

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

  после пингов
wsl: ping 172.31.192.1
win: ping 172.31.198.124

wsl: ping fe80::70c1:bc0:77b8:cd10%eth0
win: ping fe80::215:5dff:fe36:c822%60

в wsl: arp
в винде: arp -a
Отредактировано 23.07.2024 10:35 kov_serg . Предыдущая версия . Еще …
Отредактировано 23.07.2024 10:34 kov_serg . Предыдущая версия .
Отредактировано 23.07.2024 10:33 kov_serg . Предыдущая версия .
Отредактировано 23.07.2024 10:24 kov_serg . Предыдущая версия .
Отредактировано 23.07.2024 10:21 kov_serg . Предыдущая версия .
Re[6]: Доступ к Windows из WSL
От: yenik  
Дата: 23.07.24 14:32
Оценка:
А что сделать пытаемся? Да, это брандмауэр, надо было сразу проверить конечно. Если в свойствах Windows Defender Firewall в публичных сетях сделать исключение для vEthernet (WSL), то проблема решается. Только это исключение не сохраняется при перезагрузке.
Re[6]: Доступ к Windows из WSL
От: yenik  
Дата: 24.07.24 06:27
Оценка:
Пригодился совет отсюда: https://github.com/microsoft/WSL/issues/4585

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -LocalAddress 172.31.192.1 -Action Allow

Эмпирически установлено, адреса всегда одни и теже. Правда пока ничего кроме пинга что-то не получается.

А по алиасу — плохой вариант.

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

После рестарта правило остаётся, но перестаёт работать.
Re[7]: Доступ к Windows из WSL
От: Stanislaw K СССР  
Дата: 24.07.24 09:02
Оценка:
Здравствуйте, yenik, Вы писали:

Y>Пригодился совет отсюда: https://github.com/microsoft/WSL/issues/4585


Меня всегда напрягают советы "профессианалов" для неопределенной аудитории, в листингах которых присутствует "PS C:\WINDOWS\system32> ".


Y>New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow


Y>После рестарта правило остаётся, но перестаёт работать.


Set-NetFirewallRule -DisplayName "WSL" -Enabled True
or
Enable-NetFirewallRule -DisplayName "WSL"


Set-NetFirewallRule -DisplayName "WSL" -Enabled False
or
Disable-NetFirewallRule -DisplayName "WSL"


разрешить входящие пинги Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In
Все проблемы от жадности и глупости
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.