
digitalocean中创build了一个液滴,我可以使用一个vps_ip。
在我的家中,连接到互联网的方式是:route + modem + adsl。
我在家里的本地电脑上build了一个wordpress。
networking状态如下所示连接到networking。
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的帮助下解决了这个问题。
在我的本地networking中:
在我的路由器portforward端口80和私有ip 192.168.1.100到您的networking之外。
在公共液滴系统中:
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。
每隔30分钟我的ip地址变化很重要,大约30分钟后?
发布将改变,configuration文件/ etc / Nginx / sites-available / default不能工作。
我想在这个问题上做出改进。
我认为要完成这项任务:
在我家的电脑
curlipinfo.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写到 / 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
如果你谷歌“dyndns”,你会发现多个提供商,给你一个“动态域名”免费。 你应该注册其中的一个。
有很多客户端会保持动态域名与您的动态IP地址同步。 您选择的dyndns提供商可能会提供您所需的有关适合其服务的客户的所有信息。 只要在家用电脑上运行客户端,中提琴,动态的doman名称将永远指向您的动态IP! 即使一些家庭路由器可以为你更新你的动态域名,然后你甚至不必运行客户端。
然后改变你的Nginx配置来指向你的动态域名(而不是你的IP)。
我使用的ddclIEnt基于Debian的发行版应该已经可用
apt-get install ddclIEnt
不应该很难配置/etc/ddclIEnt.conf :
protocol=dyndns2 syslog=yes ssl=yes use=web,web=checkip.dynu.com/,web-skip='IP Address' server=API.dynu.com login=<your email> password='<your password>' <your subdomain>.dynu.com
它应该支持不同的协议和dyndns提供商 ,我个人使用dynu.com多年,应该是免费的(我不知道新用户)。
我建议你使用proxy_pass和upstream ,而不是rewrite 。 这将确保您的网站始终通过您的VPS提供商提供,而不会泄露您的动态IPv4地址,而这些地址可能会不时发生变化(从而使您的用户在通过rewrite指令使用重定向时可能会使您的书签失效,例如以及Google / Yandex等生成的搜索索引无效)。
正如其他人所建议的,您可以使用这些动态DNS提供商之一来确保始终有一个域名解析为您的IPv4地址,然后在Nginx配置中使用此域名。 只是一些最受欢迎的选择:
http://dyn.com/labs/dynamic-dns-integrations/
http://freedns.afraID.org/
但是请注意,Nginx只会在启动时尝试解析域名,因此,您必须重新启动它才能获取任何可能的更改。
此外,如果您的IPv4地址确实每隔30分钟发生一次更改,而不是每隔几年左右更改一次,则无论您是通过动态DNS进行更新(不管是否通过动态DNS),这种方法不仅可能导致可能的停机时间你可以用Nginx中的proxy_cache来对付),但是也可以让你家里ISP的同伴在你的IPv4地址发生变化的时间和在VPS上应用更新的时间之间模拟你的网站,另外,如果您的线路或电源故障。
因此,我不会推荐使用动态DNS路由。
与其试图追踪您的动态IPv4地址,您可能会获得一些免费的IPv6隧道和静态IPv6分配。 在这种情况下,您可以决定直接向全球发布您的IPv6地址,并且仅使用VPS代理IPv4客户端。
http://SixXS.net/
而不是让您的VPS连接到您的家用机,这将是一个更好,可靠和强大的方法,而不是你的家用机器手机回到VPS。 您可以使用VPN或IPsec解决方案完成此类电话,甚至可以使用普通的旧式OpenSSH 。
在这种情况下,您只需将(0)VPS的地址硬编码到您的家庭电脑上,并且(1)您的VPS上的Nginx内硬编码的家庭计算机的私有IP地址和端口号。 这将确保不仅无法窃取您的连接(因为它将被完全加密和验证),而且在任何配置文件中无处不在您的动态IPv4地址将被硬编码。
如果使用ssh ,则可以使用较新版本的隧道接口,或简单的旧端口转发。
在VPS上:
server { Listen *:80; Listen [::]:80; server_name vps; location / { proxy_pass http://127.0.0.1:2280; } }
在家用机器上,假设你在8080端口上运行你的webapp:
sh -xc 'while (true); do ssh -v -N -C -R127.0.0.1:2280:127.0.0.1:8080 -oserverAliveInterval=20 -oserverAliveCountMax=1 user@vps; date; sleep 1; done'
总结以上是内存溢出为你收集整理的如何映射我的私人IPdynamic更改到我的vps_ip?全部内容,希望文章能够帮你解决如何映射我的私人IPdynamic更改到我的vps_ip?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)