Еще один новичок, просящий помощи с VPS VPN для игрового сервера

Я изо всех сил старался избежать создания еще одной темы об этом, но я перепробовал все, что мог. Я запускаю игровые серверы с моего Windows ПК, но больше не могу этого делать, потому что переехал и теперь застрял с IP-адресом CGN Zito. Я купил VPS на Ubuntu в Ionos как публичный “шлюз” (Reddit сказал, что это лучше, чем платить за статический IP), и установил Wireguard на него и на свой ПК. Я перепробовал десятки руководств, включая с Tailscale (ближе всего к работе), но ни одно из них не заработало. Вот мои последние (с помощью ChatGPT) шаги, некоторые команды, вероятно, избыточны, потому что я полностью не понимаю, что они делают. Пинги между ними не работают, и сервер Ark (игра) запускается только в LAN, хотя он все равно имеет доступ к интернету и показывает свой собственный IP CGN в сети.

  1. apt-update/upgrade
  2. ufw разрешить OpenSSH
  3. ufw включить
  4. /etc/ssh/sshd_config
    • LoginGraceTime 2m
    • PermitRootLogin no
    • MaxAuthTries 3
    • MaxSessions 2
    • ChallengeResponseAuthentication no
    • PermitEmptyPasswords no
    • KerberosAuthentication no
    • GSSAPIAuthentication no
    • AllowAgentForwarding yes
    • AllowTcpForwarding yes
    • X11Forwarding no
    • PermitUserEnvironment no
  5. sudo service sshd перезагрузить
  6. /etc/sysctl.conf
    • net.ipv4.ip_forward=1
  7. sudo sysctl -p
  8. sudo sysctl -w net.ipv4.ip_forward=1
  9. echo “net.ipv4.ip_forward=1” | sudo tee -a /etc/sysctl.conf
  10. Установить Nginx на VPS (я использовал его для обратного прокси, но GPT сказал, что можно использовать iptables и оставить Nginx так же)
  • sudo apt install nginx
  • sudo systemctl start nginx
  • sudo systemctl enable nginx
  • sudo ufw разрешить ‘Nginx HTTP’
  • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
  • sudo systemctl перезагрузить nginx
  1. Установить Wireguard на VPS
  • sudo apt install wireguard
  • umask 077 && printf "[Interface]\nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null
  • sudo wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/publickey
  • sudo nano /etc/wireguard/wg0.conf (VPS)
    • [Interface]
    • PrivateKey = (частный ключ VPS)
    • Address = 10.0.0.1/24
    • ListenPort = 51820
    • [Peer]
    • PublicKey = (публичный ключ ПК)
    • AllowedIPs = 10.0.0.2/32
    • Endpoint = (публичный IP VPS):51820
    • PersistentKeepalive = 25
  1. Установить Wireguard на ПК
  • Добавить пустой туннель
    • [Interface]
    • PrivateKey = (частный ключ ПК)
    • ListenPort = 51820
    • Address = 10.0.0.2/24
    • [Peer]
    • PublicKey = (публичный ключ VPS)
    • AllowedIPs = 10.0.0.1/32
    • Endpoint = (публичный IP VPS):51820
    • PersistentKeepalive = 25
  1. iptables на VPS: (отправлял все, кроме 22, потому что это мой личный компьютер)
  • sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j ACCEPT
  • sudo iptables -t nat -A PREROUTING -p tcp -j DNAT --to-destination 10.0.0.2
  • sudo iptables -A FORWARD -p tcp -d 10.0.0.2 -j ACCEPT
  • sudo iptables -t nat -A PREROUTING -p udp -j DNAT --to-destination 10.0.0.2
  • sudo iptables -A FORWARD -p udp -d 10.0.0.2 -j ACCEPT
  • sudo apt install iptables-persistent
  • sudo netfilter-persistent save
  1. sudo wg-quick up wg0
  2. sudo sysctl -w net.ipv4.ip_forward=1
  3. echo “net.ipv4.ip_forward=1” | sudo tee -a /etc/sysctl.conf
  4. Активировать интерфейс VPS на ПК

Пожалуйста, скажите, если я что-то упустил или делаю неправильно, но также прошу не говорить мне, что я должен тратить больше денег на что-то еще, я очень хочу, чтобы это работало. Мой мозг переполнен, и я просто хочу играть в Ark с друзьями снова.

Это может быть не очень полезно, но нужно разбить всё на части и проверить каждую.

  1. Как ты общаешься с VPS и локальным сервером? Если это Wireguard, то убедись, что соединение работает. Можешь ли пинговать друг друга? SSH работает?

  2. Обратный прокси на VPS. Я не знаком с методом использования iptables как обратного прокси, но SWAG — это удобный контейнер Docker с nginx и множеством заранее настроенных профилей прокси.

Также стоит посмотреть https://pterodactyl.io/, так как он может запускать твой ARK на Docker и уже содержит конфигурацию прокси в SWAG. reverse-proxy-confs/pterodactyl.subdomain.conf.sample at master · linuxserver/reverse-proxy-confs · GitHub