
우분투 22.04를 실행하는 컴퓨터가 2대 있는데, 이를 서버와 프록시라고 부르겠습니다. 프록시는 고정 공용 IP를 가진 vps이고 서버는 nat 뒤에서 실행됩니다. 프록시의 일부 포트에서 모든 트래픽을 서버로 라우팅하고 싶습니다.
나는 2 사이에 wireguard VPN을 설정했으며 둘 다 서로 핑할 수 있습니다. 프록시에서 서버의 VPN 주소를 컬링하면 올바른 HTML 응답을 얻고 프록시에서 nginx를 설정합니다(의도된 최종 의도는 아님). http/https가 아닌 다른 서비스를 라우팅하고 싶기 때문에) VPN IP에 Proxy_pass를 허용하고 일단 올바른 HTML 응답을 얻을 수 있습니다.
하지만 iptables/ufw를 사용하여 전달을 설정할 수 없었습니다. 이것은 인터페이스 작동 시 iptables 라우팅 규칙을 포함하는 wiregaurd 구성입니다.
대리:
[Interface]
# Proxy with static ip
Address = 10.250.0.1/32
ListenPort = 23456
PrivateKey = {private key}
# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# port forwarding
PreUp = iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.250.0.2
PostDown = iptables -t nat -D PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.250.0.2
PreUp = iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.250.0.2
PostDown = iptables -t nat -D PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.250.0.2
[Peer]
# main_server behind nat
PublicKey = {pub key}
AllowedIPs = 10.250.0.2/32
섬기는 사람:
[Interface]
Address = 10.250.0.2/32
ListenPort = 23456
PrivateKey = {priv key}
[Peer]
PublicKey = {pub key}
Endpoint = {proxy server ip}:23456
AllowedIPs = 10.250.0.0/16
PersistentKeepalive = 25
실행하면 sudo iptables-save -c
다음이 반환됩니다.
# Completed on Wed Aug 24 17:01:57 2022
# Generated by iptables-save v1.8.7 on Wed Aug 24 17:01:57 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
[0:0] -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.250.0.2
[4:208] -A PREROUTING -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.250.0.2
COMMIT
[4:208]
웹 브라우저를 통해 프록시에 액세스하려고 할 때마다 패킷 및 바이트 수가 증가합니다.