家庭宽带环境下centos8 nginx 配置ipv6公网访问
最近换了移动的宽带,没有公网ipv4,好像可以开一个公网ip的叠加包。但是本着能省钱就省钱的原则,ipv6本身也比较普及了,正好就来折腾一下。
移动宽带默认就是支持ipv6的,而且移动光猫的配置也没有防火墙限制(可能跟光猫的版本有关,可以搜索相关教程确认是否需要修改配置,我的是 h3-2slite
),机器离光猫比较近就直接用网线连的光猫的路由,没有使用接出来的无线路由器上的接口,要是接的外接出来的无线路由器,需要再路由器上开启ipv6的支持,且要注意防火墙之类的问题。
- 验证是否支持ipv6,访问网址:https://www.test-ipv6.com/index.html.zh_CN
- windows、mac查看本机的ipv6地址:可访问 https://ipw.cn/ipv6/ 的 IPv6 地址查询
- linux查看:
ip addr | grep inet6
结果中带有 scope global 的
我这里是linux系统,centos8,使用nginx对外提供服务,nginx最新的版本中已经默认支持ipv6了,在server配置中直接启用即可,如:
server {
listen 80;
listen [ipv6地址]:80;
...
}
上面的配置同时支持 ipv4及ipv6,假如只支持ipv6,则可以改为:
server {
listen [ipv6地址]:80 ipv6only=on;
...
}
校验配置 sudo nginx -t
生效: sudo nginx -s reload
浏览器或命令行访问: http://[ipv6地址]
(ipv6地址外面的[] 是必须的),一般本地或者局域网内是可以访问的,但公网访问还有些问题,需要继续向下看。
- 现在80端口在公网大概率是被封禁掉的,虽然是ipv6,也难逃被封禁端口,还有其他端口被封禁了,比如443,这时候需要使用其他端口,比如 8000,上方的配置80改为8000尝试是否可以访问。
- 除了端口被封禁之外,防火墙/安全组没开放也是因素之一,可关闭防火墙,但是这样毕竟不是很安全,所以也可以针对端口进行开放,这里使用的是
centos8
的firewall-cmd --zone=public --add-port=8000/tcp --permanent
,重启防火墙生效systemctl restart firewalld
此外还要确认 selinux 是否已关闭,临时关闭可使用命令setenforce 0
,永久关闭可修改配置:vi /etc/selinux/config
中的SELINUX=disabled
,然后保存后重启生效。 - 使用手机的4g网络访问
http://[ipv6地址]:8000
此时可以访问了。说明可被公网访问。(本身支持ipv6的网络才可以访问ipv6的地址,4g移动网络是支持的,假如本身不支持ipv6的网络是没办法访问ipv6网站的,假如单位的网不支持ipv6,那么就没办法访问这个地址了。)
更进一步-域名访问ipv6
需要提前准备一个域名,一般都是在阿里云买的,这里有优惠链接:
在订单页面还可以通过优惠口令再次优惠(一般是关注公众号说明哪些后缀的有优惠。):
ipv6地址毕竟一长串不说,而且上面的ipv6也是被随机分配的,且不是固定的,这样使用起来很是麻烦,所以就需要配置一个域名解析,另外使用一个开源的的工具,可自动更新ipv6/ipv4地址到域名解析,这就是 ddns-go
这里使用docker方式运行,centos8的docker安装可参考
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
启动后访问 http://ip:9876 进行配置,具体配置可参考页面说明。另外该服务为了安全一般不对外网开放,ip使用内网ipv4的地址进行访问即可。保存的信息存储在了上面挂载的目录中: /opt/ddns-go/
是一个.开头的文件
后记
只有在所有的网络都支持ipv6时体验才会更好,假如有ipv4的公网地址还是使用ipv4比较好,电信是有的,虽然是临时的但也可以通过上面的方式通过域名配置访问。联通听说有,移动的这个公网ip包没具体问。
家庭宽带的一些端口在公网都是被封的,(别以为内网可以访问到就以为公网也可以,哪怕配置了域名,走的还是内网)再者有云服务器的,可以使用 frp
工具进行内网穿透,优势可以通过域名的80端口访问,不过就是带宽要用云服务器的带宽,而且有些贵,可以整体衡量一下。当然要是没注册过的作为新用户可以薅下羊毛,在一些节日/非节日都有新人优惠,直接购买合适的云服务器就行,也不用折腾,或者优先买带宽比较多的,其他配置低些的,用内网穿透的方式利用公网带宽,本地可以用二手电脑、树莓派、二手服务器等运行服务然后低配置的云服务器做一个数据备份、负载均衡等保证对外的服务,因为公网带宽最贵。
当然要是简单的服务就直接在云服务器上面运行就行,毕竟电费也可以省下来。其它云厂商的新用户也有优惠,可以这边到期了再换一家。下面有阿里云的新人优惠链接。
免费试用的
新人服务器优惠链接
学生新用户的优惠
一般老用户优惠并不多,建议使用亲友手机号注册