网络:route+moden+adsl上网
本机:
本机上搭建了一个wordpress,本机网络如下:
代码: 全选
WAN:
MAC:A8:64:4D:34:A5:56
IP :153.0.48.32 PPPoE
subnet mask:255.255.255.255
gateway:153.0.68.1
DNS:114.114.114.114 223.5.5.5
LAN
MAC:A8:10:4D:76:A5:33
IP :192.168.1.1
subnet mask:255.255.255.0
DHCP:active
ifconfig
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
目标:当任何人在他的浏览器上输入 这个vps_ip x.y.z.w
我本机上的wordpress就会显示在他的浏览器上。
实现:
客户端(本机上)的工作:将route的端口做映射,80打开,映射192.168.1.100.
服务器端的工作:
apt-get install -y nginx #在我的vps上架设nginx ,
nano /etc/nginx/sites-available/default
server {
listen *:80;
server_name x.y.z.w ;
rewrite .* http://153.0.48.32$request_uri permanent;
}
service nginx restart
成功实现了,nginx做为反向代理服务器,静态NAT。
现在问题没有结束,我本机的公网ip,就是那个 153.0.48.32 是变化的,每隔20分钟变化一次。
我需要将这个静态的NAT实现,用动态的NAT来实现 。
思路:
1.每隔20分钟,获得本机外网ip
这个可以在crontab上来实现 ,本机安装curl后,
命令curl ipinfo.io/ip 将显示本机公网ip.
2.发往vps,告知nginx,并让它修改 /etc/nginx/sites-available/default
rewrite .* http://ip$request_uri permanent;
修改这里的ip
3.restart nginx.
步骤1是客户端的工作,已经完成。
步骤2,3是服务器端的设置,如何设计一个通信机制,如何用程序自动完成?
用shell脚本如何完成?