Skip to content

如何通过域名访问内网服务

前提

实现此功能首先需要熟悉 动态域名解析 功能

网络结构

无论是IPV4还是IPV6最好都在内网有一个统一入口服务器,然后在这个统一入口服务器上通过二级域名url路径的方式进行服务区分;

Nginx配置

例如访问 http://local.code-e.cn:81,内网转发服务器中的Nginx可以进行如下配置;

nginx

    // 示例

    server {
        listen 80;
        listen [::]:80;

        server_name local.code-e.cn;

        location / {
            root /var/www/html;
            index index.html;
        }
    }

    // 其他服务同理

    server {
        listen 80;
        listen [::]:80;

        server_name page.code-e.cn;

        location / {
            proxy_pass http://192.168.31.159:8080/;
        }
    }

IPV4

优势

  1. 简单通用
  2. 兼容性好,不挑客户端环境

劣势

  1. 通常会被运营商封锁 80 443 等常用端口;
  2. 需要将宽带上网方式改为拨号PPPoE,并开通公网IP(动态);
  3. 需要在路由器做端口转发;

端口转发

IPV4需要在路由器中将公网IP某个端口转发到服务应用的端口;

小米路由器为例:

外部端口: 通过公网IP访问的端口;http://local.code-e.cn:81 中的81;

内部IP地址: 内网的转发服务器IP;我的Nginx部署在 192.168.31.69 这台服务器中;

内部端口: 服务应用的监听的端口;Nginx监听的端口是80;

ddns-6

效果

通过域名访问:

ddns-5

IPV6

优势

  1. 经测试,目前各大运营商并没有封锁IPV6的 80 443 端口;地区不同可能会有差异;
  2. 不需要修改上网方式为PPPoE
  3. 不需要做端口转发;

劣势

  1. 路由器一般默认关闭IPV6,需要手动开启;
  2. 客户端不支持IPV6则无法访问IPV6服务(手机流量可以直接使用IPV6);

效果

通过域名访问,IPV6可以直接通过80端口访问:

ddns-7