Підсистема Windows для переадресації портів Linux та SSH


4

Чи можливо використовувати переадресацію портів SSH в підсистемі Windows для Linux?

Якщо я завантажую нативний пакет OpenSSH, я можу пересилати порти:

> ssh -L 5432:localhost:5432 me@host
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.6.5-x86_64-linode71 x86_64)
etc

Але якщо я спробую те ж саме з WSL bash:

$ ssh -L 5432:localhost:5432 me@host
bind: Address already in use
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.6.5-x86_64-linode71 x86_64)
etc

Я запускаю bash як адміністратор (і намагався його не виконувати як адміністратор).

Відповіді:


8

Самовідповідь: Дивіться цю помилку. Наступні роботи:

ssh -L 127.0.0.1:5432:localhost:5432 me@host

Проблема полягає в тому, що IPv6 не працює у WSL, і несправність переходить до переадресації портів IPv4.


Бажаю, я виявив це кілька годин тому :)
TekiusFanatikus

1
Більш детально: ssh -L 5432:localhost:5432неявно означає ssh -L localhost:5432:localhost:5432. Це спочатку localhostшукається локально, і Windows за замовчуванням надає адресу петлі IPv6, тому ssh намагається відкрити локальний порт IPv6 5432. IPv6 не працює в WSL, тому відкриття порту не вдається. Явно надаючи 127.0.0.1локальну адресу, ви змушуєте ssh використовувати IPv4.
Том

Чи ssh -4.... вдасться застосувати IPv4?
Феліпе Альварес

@FelipeAlvarez - Я не знаю, і мені не доводиться тестувати, вибачте.
Том
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.