У меня есть сервер linux в моей лаборатории (в дальнейшем называемый pc1), и у меня есть windows pc2, на котором запущен игровой сервер. Но поскольку это частная сеть, и единственный компьютер, к которому есть доступ в Интернет, - это компьютер pc1. Но я хочу, чтобы игровой сервер на pc2 был виден за пределами интернета. Но у меня нет прав доступа к роутеру нашей лаборатории. Поэтому я хочу, чтобы pc1 действовал как своего рода маршрутизатор, который пересылает pc1: port1 на pc2: port2 и обратно. И тогда запрос из внешнего интернета может получить доступ к pc2: port2, а ответ от pc2 также может достичь внешнего. Есть ли способ добиться этого?
linux
networking
router
software-rec
network-shares
Толстый кот
источник
источник
Ответы:
Давайте назовем eth0 интерфейсом (IF), на котором pc1 связан с маршрутизатором, а eth1 - IF, на котором pc1 связан с pc2. Вам нужны эти команды, выданные как sudo, на pc1:
На компьютере с Windows вам необходимо настроить статический IP-адрес в диапазоне 192.168.27.0/24, например, 192.168.27.2, и установить 192.168.27.1 в качестве шлюза по умолчанию.
Это работает на Debian-подобных системах. Если у вас есть другой дистрибутив, вам придется адаптировать его к вашим потребностям. Например, в Systemd-дистрибутивах (Arch-Linux, Fedora, SuSE 19 ..) первая команда -
systemctl stop network-manager
).Первая команда отключает сетевой менеджер, который мешает большинству пользовательских операций. Следующие 3 команды подключают pc1 к маршрутизатору, а дальнейшие команды 5-6 подключают pc1 к pc2. Затем команды 7-8 устанавливают таблицу маршрутизации, команды 9-10 настраивают DNS, команда 11 включает пересылку Ipv4 в ядре, а команды 12-13 устанавливают правила для iptables, выполняющих функции пересылки NAT и принимающих соединения от рс2.
Это может быть легко написано.
Если вы хотите разрешить связь только на определенных портах, замените
с участием
источник