Здравствуйте, друзья!
Если вы на SSH-сервере когда-то делали запрет IPv6 на всех интерфейсах, и спустя некоторое время после других изменений в системе клиента или сервера SSH вдруг перестал работать X11 Forwarding, то для восстановления его работы надо разрешить IPv6 на интерфейсе петли (интерфейс имеет имя lo в GNU/Linux) в настройках того же SSH-сервера; в Debian это делается так:
- На лету:
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
- Для автоматической настройке при загрузке системы:
- конфиг запрета (создавали когда-то давно)
$ cat /etc/sysctl.d/70-disable-ipv6.conf
# https://www.itzgeek.com/how-tos/linux/debian/how-to-disable-ipv6-on-debian-9-ubuntu-16-04.html
net.ipv6.conf.all.disable_ipv6 = 1
- конфиг исключения для lo (добавляем сейчас, чтобы решить проблему)
$ cat /etc/sysctl.d/71-enable-lo-ipv6.conf
# to enable ::1, for X11 forwarding, RD, 2023-01-08
net.ipv6.conf.lo.disable_ipv6 = 0
- чтобы на лету актуализировать изменения конфига, не перезагружая Linux-хост
$ sudo sysctl --system
- конфиг запрета (создавали когда-то давно)
Проверить можно, помимо всего прочего, зайдя (или перезайдя) на проблемный SSH-сервер по команде ssh -X
и посмотрев переменную DISPLAY, которая до исправления конфигурации не была выставлена, а после исправления должна быть равна localhost:10.0:
$ echo $DISPLAY
localhost:10.0