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

перенаправить публичный порт 81 на порт 80 на локальном ip

Я новичок в serverfault, поэтому, пожалуйста, сообщите мне о любом плохом поведении :)

Я искал ответ на serverfault (и в Google), но не могу найти ответ на свою проблему (я могу найти ответы, которые частично являются тем, что мне нужно, но мне не хватает знаний / опыта, чтобы объединить их для решения моей проблемы)

проблема заключается в следующем: - у меня есть общедоступный сервер с портом 81, который доступен на общедоступном IP-адресе - у меня есть локальный сервер с портом 80, который недоступен для публики - я хочу, чтобы пользователь подключился к порту 81 на общедоступный IP-адрес и прибытие на порт 80 локального сервера (192.168.98. ###)

Я думаю, что мне нужно немного настроить с помощью iptables, но для меня это довольно туманно

я попробовал несколько ответов от Как я могу перенаправить порт с помощью iptables? но я сталкиваюсь со всевозможными ошибками

некоторые вопросы: - нужно ли настраивать локальный сервер? например, мне нужно установить шлюз на IP-адрес общедоступного сервера? - / proc / sys / net / ipv4 / conf / ppp0 не существует, это проблема?

нет портов, заблокированных брандмауэром

Я полностью контролирую общедоступный сервер, на котором работает:

# cat /proc/version
Linux version 2.4.22-1.2115.nptl (bhcompile@daffy.perf.redhat.com) (gcc version 3.2.3 20030422 (Red Hat Linux 3.2.3-6)) #1 Wed Oct 29 15:42:51 EST 2003
# iptables --version
iptables v1.2.8

Я не знаю ОС локального сервера и не могу контролировать его конфигурацию

не могли бы вы объяснить мне, какие настройки iptables я могу использовать или какую-либо другую конфигурацию?

Во-первых, вам не нужно с этим разбираться /proc/sys/net/ipv4/conf/ppp0, если на вашем шлюзе не установлен модем.

Первое, что вам нужно сделать, это включить пересылку на вашем шлюзе следующим образом:

# echo '1' > /proc/sys/net/ipv4/conf/eth0/forwarding (if you are running your live IP on eth0)

Затем просто перенаправляйте свой трафик следующим образом:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80
# iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Вы должны заменить 192.168.1.2 внутренним IP-адресом вашей машины. Также замените eth0, с интерфейсом, на котором у вас есть активный IP-адрес на вашем шлюзе.

и, наконец, как указано в сообщении, которое вы читали ранее, вы можете проверить маршрутизацию с помощью

# ip route

Надеюсь, это помогло. Не стесняйтесь вернуться, если у вас возникнут проблемы.

Также опубликуйте сообщения об ошибках, которые возникают в этом процессе.