障碍
- 家庭宽带没有固定IP
- ddns不稳定
- 基础电信运营商屏蔽了家庭宽带的80、443等端口
由于以上几个问题的存在,你在家中的WEB服务只能以 http://域名:端口
的形式访问,由于使用了ddns,还会存在时而无法访问的情况。
解决
- 购买国外VPS
- VPS将请求转发到家里主机
为什么是购买国外的VPS?
- 在满足需求的情况下,国外的VPS最便宜,大部分
$5/月
,我所知最便宜的$19.99/年
- 稳定性也不差
- 只限流量,不限带宽,所以访问速度上也挺快
- 同时还可以通过它科学上网
- 不需要备案
具体操作
-
购买VPS
推荐几个服务商
-
请求转发
vps上需要做的操作:
在
/etc/ssh/sshd_config
末尾添加如下两行GatewayPorts yes ClientAliveInterval 60
GatewayPorts
配置项作用:
对于远程端口转发,sshd服务默认只允许从本机回环接口访问,打开该配置项后,就可以从公网访问了ClientAliveInterval
配置项作用
当连接两端没有数据传输时,sshd服务会每隔60秒向对端发送一次数据,以保持连接不被断开在家中主机上需要做的操作:
$ ssh -CfNg -R 80:127.0.0.1:80 root@66.205.155.169 -i ~/.ssh/vps $ ssh -CfNg -R 443:127.0.0.1:443 root@66.205.155.169 -i ~/.ssh/vps
其中
66.205.155.169
是你所购买的vps的IP如果一切顺利,那么vps就会监听80和443端口,当有请求时,会将请求转发到你家中的主机。
root@ss:~# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29639/sshd: root tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 29512/sshd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 29606/sshd: root tcp6 0 0 :::80 :::* LISTEN 29639/sshd: root tcp6 0 0 :::22 :::* LISTEN 29512/sshd tcp6 0 0 :::443 :::* LISTEN 29606/sshd: root
网友评论