Как я могу туннелировать соединения Telnet между двумя интерфейсами?
У меня есть следующая сеть:
PC1 --|¯¯¯¯¯¯¯¯¯| |¯¯¯¯¯¯¯¯¯|-- board2
PC2 --| gateway |-- (eth0) [server] (eth1) --| gateway |
PC3 --|_________| |_________|-- board1
Как вы можете видеть, сервер (под управлением Linux) имеет 2 интерфейса, поэтому ПК и встроенные платы не находятся в одной подсети.
Я хотел бы разработать простое приложение (или использовать существующее), которое туннелирует входящие соединения Telnet из eth0
(используя определенный порт) для плат через eth1
,
У меня нет привилегий root на сервере, но у меня есть обычная учетная запись Unix. Я не хочу, чтобы ПК фактически "входили" на сервер; Я просто хочу, чтобы они прошли через него, чтобы подключиться к платам. На сервере установлены Python, PHP и Perl.
Я хочу поддерживать несколько соединений. Номер порта можно использовать для переадресации соединения на правую плату (скажем, у меня 10 плат, затем туннель прослушивает порты с 3000 по 3009).
Я могу представить себе простое веб-приложение для этого, но мне нужно собственное подключение Telnet, которое будет поддерживать CTRL+C и все такое, и позволит вам использовать любой эмулятор терминала на ПК (например, PuTTY или другой), который работает под управлением Windows.,
Любая помощь приветствуется.
1 ответ
Похоже, вы ищете TCP- прокси. Прокси-сервер принимает подключения к одному порту, подключается к другому ip / порту, а затем передает трафик туда и обратно.
Если у вас есть xinetd
в вашей системе у вас уже есть то, что вам нужно. redirect
директива для службы заставляет xinetd открывать соединение с другим хостом / портом и действовать как прокси. Смотрите этот документ для примера.
баланс - еще один очень простой прокси-инструмент, который будет делать то, что вам нужно. Это, вероятно, легче запустить как неroot
пользователь, тем более что он полностью настроен в командной строке.
Так как ты не root
на вашем сервере вам нужно будет запустить их на портах> 1024, но в остальном у вас все будет готово.