Моя система:
Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends
Поэтому я используюairdcppd, программа обмена файлами, которая использует 3 порта на моем локальном компьютере для передачи информации о трафике.
Они есть:
23288/tcp
21500/udp
13875/tcp
Я хочу перенаправить эти порты на VPS Wireguard, чтобы все выглядело так, как будто порты работают на стороне сервера и открыты для публики.
Чтобы добиться этого, я изменил конфигурацию интерфейса Wireguard в соответствии с этими инструкциями:
Итак, моя конфигурация теперь выглядит так:
местный:
[Interface]
PrivateKey = <my key>
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,94.140.15.15
# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# port forwarding
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
Endpoint = vps.ip.address:49503
AllowedIPs = 0.0.0.0/0,::/0
сервер:
[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = <my key>
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
### Client name
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
Итак, как вы, вероятно, видите, мой внутренний адрес Wireguard для локальной сети: 10.66.66.2
а для сервера:10.66.66.1
Теперь происходит следующее: локальный порт 23288
на локальной машине, который отображается как открытый без использования vpn, также отображается как открытый после проверки с помощью средства проверки портов. Остальные три порта по-прежнему закрыты, но это не слишком беспокоит, поскольку основной используемый порт открыт, и этого достаточно для моих целей. Другие порты также отображаются как закрытые даже без использования vpn.
На данный момент брандмауэры не используются, я разрешу все задействованные порты после того, как все заработает.
Проблема возникает в том, что происходит после отправки пакетов через vpn, они, похоже, не возвращаются на локальную машину. Как вы видите, я настроил правила для отправки всех пакетов на этих 3 портах обратно на локальную машину. Но по какой-то причине я их не получаю, так как приложение airdc
не отображает то, что должно.
Я что-то сделал неправильно, пытаясь «переслать» обратно трафик этих портов на локальную машину? Правильный ли это способ для моего локального приложения получать обратно пакеты? Если нет, то как правильно настроить конфигурацию VPS wireguard, чтобы все, что пересылается на эти три порта, возвращалось правильно?
Спасибо за внимание!
EDIT: Локальный порт, который я использую для доступа к сервису, — http://localhost:5960, и я хотел бы использовать его с VPN, чтобы иметь возможность получить к нему доступ и из Интернета, вот так:https://vps.ip.адрес:5960, но даже если я добавлю строку для переадресации локального порта 5960 на сервер с тем же синтаксисом, что и выше, это все равно не будет работать. Может быть, это ключ к тому, чтобы все заработало?
решение1
Вместо этого вам придется перенаправить порты со стороны VPS на внутренний IP локальной машины. Как если бы вы перенаправляли порты с маршрутизатора у себя дома на локальный адрес вашего ПК. Не подключайте локальную машину к VPS.