Доступ к серверу SOCKS внутри гостя VirtualBox с NAT
Перенаправьте loopback-порт хоста на прокси гостя и проверьте, что слушатель в госте принимает подключения на своём виртуальном сетевом интерфейсе.
Служба SOCKS внутри гостя VirtualBox имеет два отдельных требования к доступности: VirtualBox должен доставить подключение гостю, а служба гостя должна его принять.
Для ВМ, первый адаптер которой использует обычный NAT, VirtualBox 7.1 документирует правило перенаправления порта в таком виде. При остановленной ВМ:
VBoxManage modifyvm "Proxy VM" --nat-pf1 "socks,tcp,127.0.0.1,1080,,1080"
Замените имя ВМ и порты по необходимости. Затем приложение хоста выбирает SOCKS по адресу 127.0.0.1:1080. Привязка стороны хоста к 127.0.0.1 ограничивает эту точку входа самим хостом.
Пустое поле адреса гостя предполагает, что гость использует встроенное назначение DHCP механизма NAT. Если гость использует статический адрес, укажите этот адрес в правиле. Последний 1080 — это порт службы гостя; он не обязан совпадать с портом хоста.
Слушатель в госте остаётся сетевой службой
Прокси, привязанный только к 127.0.0.1 внутри гостя, принимает локальные для гостя подключения. Перенаправление NAT не заставляет этот loopback-слушатель принимать трафик, поступающий на виртуальный интерфейс гостя. Настройте службу на прослушивание подходящего интерфейса гостя и разрешите нужному трафику проходить через межсетевой экран гостя и правила доступа прокси. Проверьте разрешённый и запрещённый доступ слушателя после изменения этой границы.
При сбое проверяйте эти границы по отдельности: порт и правило хоста, выбранный адрес гостя и слушатель внутри гостя. Переход на мостовую сеть не исправит службу, которая по-прежнему слушает только loopback гостя.
Это правило TCP охватывает подключение SOCKS по TCP. Само по себе оно не обеспечивает дополнительный путь UDP, необходимый для SOCKS5 UDP relay.