У меня есть программа-демон, которая слушает 127.0.0.1:8000.
Мне нужно получить к нему доступ, когда я подключаюсь к своему ящику с помощью vpn.
поэтому я хочу, чтобы он тоже слушал интерфейс ppp0.
Я пробовал метод "ssh -L". это работает, но я не думаю, что это правильный способ сделать это, имея дополнительный процесс ssh, работающий в фоновом режиме.
Я попробовал метод "netcat". он выходит при закрытии соединения. так что это не правильный способ "слушать".
Я также пробовал несколько правил iptables. ни один из них не работал.
Я не перечисляю здесь все правила, которые я использовал.
iptables -A FORWARD -j ACCEPT
iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 8000 -j DNAT --to-destination 127.0.0.1:8000
приведенный выше набор правил не работает.
У меня net.ipv4.ip_forward установлен в 1.
кто-нибудь знает, как перенаправить трафик с интерфейса ppp на lo?
скажем, слушайте «192.168.45.1:8000 (ppp0)», а также «127.0.0.1:8000 (lo)»
порт менять не нужно.
спасибо
= - = обновление:
на роуминге, когда я использую
nc 192.168.45.1 8000
нет никакого вывода, независимо от того, что я набираю.
однако при этом в сеансе ssh для обоих
nc 127.0.0.1 8000
nc 192.168.45.1 8000
он выдает сообщения об ошибках, если я ввожу случайный текст.
Означает ли это, что мне нужны дополнительные правила для перенаправления вывода обратно в роуминг?
Я быстро взглянул на ваши правила iptables, и моя первая мысль - они хорошо выглядят. Вы уверены, что это уже не работает - но только от иностранного хоста. Если вы попытаетесь подключиться к нему с самого сервера, это не сработает. В этом случае вам также необходимо добавить свое правило nat в цепочку nat OUTPUT:
-t nat -A OUTPUT -p tcp -dst 192.168.45.1 --dport 8000 -j DNAT --to-destination 127.0.0.1:8000
(Это необходимо, потому что ваши локальные пакеты не будут проходить через цепочку PREROUTING - по крайней мере, в моей системе они не проходят.)
Я бы сначала попробовал, но, возможно, возникнет дополнительная проблема. (Может быть, есть не только tcp-пакеты, но и udp?)
Кстати, возможно, вы можете настроить своего демона на прослушивание обоих интерфейсов.