Назад | Перейти на главную страницу

Как маршрутизировать сетевой трафик одного хоста через другой хост?

Я не системный администратор нашей корпоративной сети, но у меня есть две рабочие станции Linux (хосты A и B) с корневым доступом к обоим.

Оба хоста прекрасно видят друг друга (ssh, ping и т. Д. Работают от одного к другому). Однако только хост A может выйти из нашего корпоративного брандмауэра и получить доступ к Интернету и т. Д .; хост B не может.

Вопрос: Как я могу направить весь (а не только HTTP) исходящий и входящий сетевой трафик на узле B через узел A без участия моего системного администратора? Прямо сейчас я не знаю, нужно ли мне использовать NAT для хоста B, и / или сделать хост A прокси-сервером, и / или сделать хост A маршрутизатором.

На хосте B я попытался выдать route add -host <HostA> gw <HostA's Gateway> команду, но это не сработало: я не смог ping www.google.com с хоста B. Прошу простить меня за незнание этого вопроса о маршрутизации / сети.

Для этого у вас есть несколько решений:

Более простой способ: NAT

Сделайте маршрутизатор A, разрешив пересылку: sysctl net.ipv4.ip_forward=1 Ставить net.ipv4.ip_forward=1 в /etc/sysctl.conf, чтобы сделать его постоянным.

Затем на A, nat trafic, набрав: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Наконец, на B: направьте весь трафик через A:

ip route del default  
ip route add default via IP_of_A

Другое решение: Proxify,

но вам нужно настроить все компоненты для использования прокси:

На B откройте SSH-соединение с A с помощью этой команды:

ssh -D8000 -N -f user@IP_of_A 

Это откроет прокси-сокет на B и ретранслирует весь трафик через A. Если вы, например, используете веб-браузер, вам необходимо настроить прокси-сокет v5 на 127.0.0.1, прослушивающем порт 8000. Вам не нужно будет настраивать ip. переадресация или прикосновение к маршрутам.

Я считаю, что вам нужно отключить брандмауэр.

service iptables stop

Не уверен, что это необходимо как для хоста A, так и для хоста B, но я получил сообщение «Целевой хост запрещен»