加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

shell – 如何将我的私有ip映射到我的vps_ip上?

发布时间:2020-12-13 21:32:36 所属栏目:Nginx 来源:网络整理
导读:我在digitalocean中创建了一个droplet,我可以使用一个vps_ip. 在我的家中连接到互联网的方式是:路由调制解调器adsl. 我在家里的本地电脑上建了一个wordpress. 连接到网络时的净状态如下所示. WAN:MAC:ommitted for privacyIP :public_ip PPPoEsubnet mask

我在digitalocean中创建了一个droplet,我可以使用一个vps_ip.
在我的家中连接到互联网的方式是:路由调制解调器adsl.
我在家里的本地电脑上建了一个wordpress.
连接到网络时的净状态如下所示.

WAN:
MAC:ommitted for privacy
IP :public_ip PPPoE
subnet mask:255.255.255.255
gateway:153.0.68.1
DNS:114.114.114.114 223.5.5.5

LAN
MAC:ommitted for privacy
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                                                                    

我的目标:让公众访问家用电脑上的wordpress网站,vps_ip digitalocean给了我.

感谢CrypticDesigns.
https://www.digitalocean.com/community/questions/how-to-map-my-local-ip-192-168-1-100-with-my-vps_ip?
我已经在CrypticDesigns的帮助下解决了这个问题.

在我的本地网络中:
在我的路由器portforward端口80和私有IP 192.168.1.100到您的网络外部.

在公共液滴系统中:

sudo apt-get install nginx
sudo nano /etc/nginx/sites-available/default
server {
    listen *:80;
    server_name vps_ip;
    rewrite .* http://publlic_ip$request_uri permanent; 
}
sudo service nginx restart

任何进入vpsip的人都可以浏览我的wordpress.
重要的是我的WAN上的ip地址大约每30分钟变化一次.大约30分钟后?
publicip将更改,配置文件/ etc / nginx / sites-available / default无法正常工作.
我想对这个问题进行改进.
我的意见是完成任务:
在我的家用电脑里
命令curl ipinfo.io/ip可以获取我的公共IP.
每隔30分钟将其写入crontab.
2.发送vpsip并在/ etc / nginx / sites-available / default中更改publicip的值
,并重新启动nginx.

如何用shell命令表达这两个步骤使进程自动化?

最佳答案
有很多方法可以解决这个问题.对我来说,这是最简单的一个,无需安装额外的软件或订阅动态DNS网站.

我不知道这是一个时间问题,但ipinfo.io不适合我,所以我在解决方案中使用另一个服务.如果需要,改变它.

首先,在本地PC中,将远程/ etc / nginx / sites-available / default(您称之为publlic_ip的IP)中的IP写入/ tmp / oldIP.只是知识产权,如:

20.20.20.20

这只需要完成一次.
然后,将以下脚本保存在任何位置,提供执行权限并将其添加到cron:

#!/bin/bash

VPS_IP= #fill this 
VPS_USER= #fill this
MyOldIP=$(cat /tmp/oldIP)
MyIP=$(curl http://bot.whatismyipaddress.com)

if [ $MyOldIP != $MyIP ] ; then
  ssh $VPS_USER@$VPS_IP "sudo sed -i 's/$MyOldIP/$MyIP/' /etc/nginx/sites-available/default" 
  && ssh $VPS_USER@$VPS_IP sudo service nginx restart
fi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读