Appearance
如何通过域名访问内网服务
前提
实现此功能首先需要熟悉 动态域名解析 功能
网络结构
无论是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
优势
- 简单通用
- 兼容性好,不挑客户端环境
劣势
- 通常会被运营商封锁
80
443
等常用端口; - 需要将宽带上网方式改为
拨号
即PPPoE
,并开通公网IP(动态); - 需要在路由器做端口转发;
端口转发
IPV4需要在路由器中将公网IP某个端口转发到服务应用的端口;
小米路由器为例:
外部端口
: 通过公网IP访问的端口;http://local.code-e.cn:81
中的81;
内部IP地址
: 内网的转发服务器IP;我的Nginx部署在 192.168.31.69
这台服务器中;
内部端口
: 服务应用的监听的端口;Nginx监听的端口是80;
效果
通过域名访问:
IPV6
优势
- 经测试,目前各大运营商并没有封锁IPV6的
80
443
端口;地区不同可能会有差异; - 不需要修改上网方式为
PPPoE
; - 不需要做端口转发;
劣势
- 路由器一般默认关闭IPV6,需要手动开启;
- 客户端不支持IPV6则无法访问IPV6服务(手机流量可以直接使用IPV6);
效果
通过域名访问,IPV6可以直接通过80端口访问: