У меня есть туннельное соединение ssh, которое отлично работает из командной строки;
ssh -f -N -L 4444: to.somewhere.com: 80 user@xxx.xxx.xxx.xxx -p 22
Теперь я пытаюсь настроить это подключение для подключения по запросу с xinetd. Я поместил этот настраиваемый порт в / etc / service (инструмент 4444 / tcp) и создал файл конфигурации в /etc/xinetd.d;
service tool
{
socket_type = stream
instances = 1
wait = no
user = root
server = /usr/bin/ssh
server_args = -f -N -L 4444:to.somewhere.com:80 user@xxx.xxx.xxx.xxx -p 22
port = 4444
disable = no
}
После перезапуска xinetd я пытаюсь подключиться к этому порту с помощью wget и получаю сообщение;
bind: адрес уже используется
lsof -i и netstat -a не показывают никаких открытых 4444 на переднем крае.
Причина в том, что xinitd привязывается к порту, и когда ssh пытается его использовать, порт уже используется. Чтобы использовать xinetd, вы должны взаимодействовать с stdin / stdout с дочерним процессом.
Здесь вы можете найти указатель, как управлять ssh-туннелем с помощью xinetd: