gpt4 book ai didi

shell - 如何将动态更改的私有(private) ip 映射到我的 vps ip?

转载 作者:行者123 更新时间:2023-12-04 15:20:53 26 4
gpt4 key购买 nike

我在 digitalocean 中创建了一个 droplet,我可以使用一个 vps_ip。
在我家连接互联网的方式是:route+modem+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

我的目标:让公众使用 vps_ip digitalocean 给我的家用电脑访问我的 wordpress 网站。

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

在我的本地网络中:
在我的路由器上,将端口 80 和私有(private) IP 192.168.1.100 转发到您的网络外部。

在公共(public)液滴系统中:
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 不能工作。
我想对这个问题进行改进。
我认为完成任务是:
1.在我家的电脑里
curl ipinfo.io/ip 命令可以获取我的公共(public) 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 写入/tmp/oldIP。只是IP,例如:

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

关于shell - 如何将动态更改的私有(private) ip 映射到我的 vps ip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32116243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com