IPv4<->Wireguard<->IPv4组网服务: LANraragi 实例

说明

LANraragi 是一个漫画/漫画存档的开源服务器,以 Mojolicious + Redis 运行。

[Unraid 系列 v6.9.2] 9 优化 IPv6 访问(LANraragi 示例) 中提到, LANraragi 无法在 Unraid 中通过 [IPv6]:[Port] 方式访问。

但开虚拟机只用于这一个项目实在浪费资源,但现在有了一个新的思路:具有 WAN IPv6 地址和 LAN IPv4 地址的路由/防火墙,对 LAN 下 IPv4 的 LANraragi 进行端口转发,对外提供 IPv6 服务。

这个方法更简单,也更稳定。

OPNsense HAProxy 反向代理

请参阅: OPNsense 防火墙系列五:HAProxy IPv6 反向代理、IPv6 代理 IPv4 ,全文和其中 普通代理 - HTTP proxy HTTP(S) 的具体部分。

Wireguard 虚拟局域网

再由 Wireguard+公网轻量应用服务器实现 IPv4 内网穿透

如果公网服务器同时支持 IPv4 和 IPv6 的话,直接跳过虚拟局域网即可直接下一步代理。

或许有人问为什么不直接用 Wireguard 将公网服务器 + Unraid 进行组网呢?当然是统一网络出入都过防火墙啊。

Nginx 反向代理

通过虚拟局域网向 IPv4 终端提供反向代理服务。

server {
    listen [PORT] ssl http2;
    server_name [DOMAIN];

    ssl on;
    index index.php index.html index.htm;
    ssl_certificate /etc/nginx/conf.d/ssl/[DOMAIN].pem;
    ssl_certificate_key  /etc/nginx/conf.d/ssl/[DOMAIN].key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    client_max_body_size 500;

    location / {
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://[WAN_VPN_IPv4_DOMAIN]:[PORT];
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

然后公网服务器开放端口即可。

posted @ 2023-03-19 19:57  Yogile  阅读(357)  评论(0编辑  收藏  举报