
Я теоретически знаю, как работают прокси-серверы, но практика берет надо мной верх.
Мне нужно настроить SOCKS-прокси в той же сети, что и мой IP-адрес управления, чтобы он оставался абстрагированным от пользователей. У меня есть кластер vCenter, на котором я могу развернуть любую рекомендуемую ОС, но для упрощения вот настройка:
- IP управления системой хранения = 10.244.244.15
- IP-адрес виртуальной машины SUSE11 = 10.244.244.10
- IP-адрес Windows XP = 10.244.244.5
В системе SUSE я запустил ssh -ND 1080 <user>@<storage mgmt ip>
, но это не привело к сквозному подключению.
В то время я работал tcpdump
на том же порту и видел попытку трафика:
17:42:26.669953 IP 10.x.x.x.54214 > x.x.com.socks: S 3287828135:3287828135(0) win 5840 <mss 1460,sackOK,timestamp 6708230 0,nop,wscale 6>
17:42:26.669968 IP x.x.com.socks > 10.x.x.x.54214: R 0:0(0) ack 3287828136 win 0
Общие вопросы:
- Менее важно, что я сделал выше?
- И что еще важнее, как настроить прокси-сервер SOCKS в этой среде?
решение1
SSH-соединение, вероятно, прослушивает только интерфейс обратной связи (127.0.0.1) из-за настройки GatewayPorts в конфигурации SSHD. Ваша команда будет работать, если GatewayPorts установлен на yes.
netstat -an | grep LISTEN
покажет вам, прослушивает ли он публичный интерфейс. Вы можете заставить его прослушивать публичный интерфейс с помощью
ssh -ND <ip address>:<port> <user>:<host>
но только если GatewayPorts позволяет вам это сделать.
GatewayPorts
Specifies whether remote hosts are allowed to connect to ports
forwarded for the client. By default, sshd binds remote port
forwardings to the loopback address. This prevents other remote
hosts from connecting to forwarded ports. GatewayPorts can be
used to specify that sshd should allow remote port forwardings to
bind to non-loopback addresses, thus allowing other hosts to con-
nect. The argument may be "no" to force remote port forwardings
to be available to the local host only, "yes" to force remote
port forwardings to bind to the wildcard address, or
"clientspecified" to allow the client to select the address to
which the forwarding is bound. The default is "no".
Я предполагаю, что GatewayPorts установлен на значение по умолчанию no. Измените его на yes (в /etc/ssh/sshd_config
), и тогда ваша команда ssh должна работать без изменений, но вы можете использовать IP-адрес интерфейса, чтобы быть конкретными, на всякий случай.
Примечание: Кроме того, вам следует проверить, нет ли у вас правил iptables, блокирующих входящие соединения.
SSH-прокси вроде подойдет, но он может быть довольно медленным (издержки на шифрование). Возможно, вам стоит рассмотреть выделенный socks-прокси, такой какsНоски.