文档章节

普通宽带部署网站发布到公网

华山猛男
 华山猛男
发布于 2017/04/07 23:16
字数 2151
阅读 32
收藏 2
点赞 0
评论 0

这个技术普遍路由器都支持,方法也很简单,使用普通宽带部署网站发布到公网,这样通过公网ip或花生壳即可访问自己在电脑上部署的网站。

原理说明

我们都知道,在申请电信宽带后,采用拨号登陆后,电信会自动分配一个公网IPV4的动态IP给你,这个IPV4公网IP是唯一的,如果采用网线直连(不经过路由器)的方式,你会查到唯一公网IP,其他外网电脑可以ping通你的机器,但现在一般都不这样做,因为~ you need wifi QAQ yes!。但是通过无线路由器,采用DHCP分配后,会将公网IP发布成2级网段,即192.168.1.x(可设置),那么你的机器拿到的IP地址就是局域网的IP地址,这个地址外网是无法访问到的(也就是ping不通,连不到),必须采用端口映射的方式处理,才能访问,所以我们这里直接说第二种方式怎么处理,因为说完第二种你也就知道第一种的原理了。

所以。要想将局域网发布的网站,如:http://192.168.1.166:9090/wangzhan,让别人能通过外网访问到,即:http:// 112.66.74.26:9090/wangzhan(公网IP)或http://bxxxxxxxx.ticp.net:9090/wangzhan(花生壳域名,动态IP代理),就必须通过取消电信NAT转发、DMZ主机、端口映射、端口通过本地防火墙,这几部来完成!

电信NAT转发

没有听说过这个的同学可能会一脸懵逼,这是啥?很有可能你做了其他步骤后发现还是不行,通过外网怎么都ping不通你本地的公网IP,防火墙端口都开了还是不行?恭喜你,你的当前IP地址可能是电信的保留地址(一般100、10、172打头)。

这里我直接引用百度中的一段话来说明,因为我对这个技术的了解不够深入:

正常的网络应该是动态公网ip,也就是路由器里面的WAN口IP与www.ip138.com上面显示的是一致的,不一致的话则说明该网络被电信或者联通做了NAT转发,导致您获取到了一个虚假的IP地址,无法用于外网访问;您已经处于电信或者联通构建的一个大型局域网里面了,不是真正的互联网,动态域名也只能解析到运营商公用网关的那个IP地址。
造成的影响:失去了正常的公网,会导致您无法做实时网络视频监控,无法进行外网访问等等
软件的影响:导致您的软件只能在主机和内部网使用,无法在您出差的时候或者在家里使用,其他门店也无法登录。

产生原因:

在当前IPV4下,公网IP作为不可再生资源已经捉襟见肘,而上网用户和上网设备越来越多,所以运营商无法给所有用户提供充足的独立公网IP地址资源了,因此运营商就通过NAT转发技术(网络地址转换)的方法,使部分用户都处于一个大型局域网内,共用同一个外网出口,从而缓解IP压力。就好比您的房子原来是独立的,后来被像小区一样把很多户家庭用围墙圈起来,您和同小区的所有居民公用一个小区大门。而这样的做法是一刀切,是对网络用户的不负责任,把原本应该分配给用户的独享宽带变成了共享宽带,就跟城中村的二手网络没有什么区别了。

解决方法:

拨打10000,售后报修,跟客服说:查到当前IP是保留地址,外网无法访问,没法做监控,要求分配一个动态公网IP。过一个小时后,重启一下路由器观察一下公网IP和你在百度或其他网站上查到的是否一致!

路由器截图(正常):

百度(输入IP即可):

测试:外网-CMD-PING IP地址(例:ping 112.66.74.26)

路由器端口映射

局域网电脑通过端口映射,将端口暴露在公网中,在公网中可访问此端口,首先要确定你需要映射的本地IP地址和端口号,建议设置成固定IP,因为没有通过静态绑定的IP地址,断网重连后DHCP会自动将你的IP重新分配,会导致你每次获取到的局域网IP地址不一样,那就要跑去路由器里改来改去,没必要:),我本机地址是192.168.1.166,端口号9090(我将网站部署在Tomcat的9090端口上,例:http://192.168.1.166:9090/wangzhan)。

本地IP图:

端口映射图:

DMZ主机:

本地Windows防火墙(如有多个网络,请确定使用的网络,出入站规则端口号一致,例9090):

测试:外网-CMD-TELNET IP地址 端口号(例:局域网telnet 192.168.1.166 9090或公网telnet 112.66.74.26 9090),上一步(PING)没成功,这步就不用看了,回去谢谢。

小结及问题说明

经过以上两步都成功后,你会发现,通过公网IP已经可以访问自己在本机上搭建的网站了,访问地址为:公网IP+端口号+工程名称(http://112.66.74.26:9090/wangzhan)。

至此,访问算是成功了一半,还有另外一半是啥?公网IP是动态的。。 ORZ 惊不惊喜?每隔大约24小时电信就要换一换或者断网后又换一换,你想不想掐死它,不用你说我也想。想要公网访问连接是固定的怎么办?路由器里面找一下,发现一个花生壳,这是一个神奇的东西,你几乎会发现很多种路由器都支持花生壳(路由器亲干儿子),这个是啥,这个是能够通过内网穿透,一旦你的公网IP变动,它会第一时间动态绑定到你的网址上,就是说你的公网IP不管怎么变,花生壳域名不变,能一直保持访问!(被电信NAT转发的不行哦~)

花生壳域名绑定

登录花生壳官网(http://hsk.oray.com),注册什么都就不用说了,注册完后会得到一个花生壳域名,再开通一个内网穿透(6元),最后在路由器里面登录花生壳账户就完成了。

花生壳图:

路由器图DDNS:

测试:首次登录后会解析一下,稍微等个半个小时,访问方式:域名+端口号+工程名称(http://bxxxxxxxx.ticp.net:9090/wangzhan)

注意:在本机上是无法通过域名的方式去访问的,必须是不适用当前网络的情况下才能通过域名访问,原因(待写。。),但还是有办法的,在本机上访问找到以下文件:C:\Windows\System32\drivers\etc\host,在末尾添加一行127.0.0.1 xxxx.eicp.net,即可通过域名访问。

完结图:

远程开机-20180108更新

接着上面说后续吧,路由器里面绑定好花生壳后,后续可以添加一步,远程开机,通过浏览器访问网站来触发远程开机操作。

前提:主板支持网络唤醒操作,不同的主板是不一样的,大家根据自己的主板型号去查一下,在BIOS里面开启网络唤醒模块就好了,如果没有的可以购买向日葵的开机棒或其他设备。(我的是华硕B85,在高级电源管理里面关闭ERP,开启PICE支持操作即可)

远程开机网址:

  • https://www.depicus.com/wake-on-lan/woli

一共4项信息需要填写;

MAC:该地址是你需要开机的网卡mac地址,在电脑上打开CMD,输入ipconfig/all,进行查询。

IP:该地址填写你在路由器里面绑定的花生壳的域名,会自动解析为公网IP。

Subnet Mask:自行选择,默认255.255.255.255即可。

Port:自行选择,默认4343。

如果嫌麻烦,每次要填写这么多信息,可以看上面有个链接模板,采用那种格式进行访问,每次会自动填充信息,大家可以写好保存该条链接就好了,方便使用。

© 著作权归作者所有

共有 人打赏支持
华山猛男
粉丝 6
博文 158
码字总数 78612
作品 0
海口
程序员
【前方高能】当运营商给你分配了内网IP后怎么当公网IP用!

最近看到不少人都在吐槽一个问题,就是宽带被运营商偷偷分配了内网IP。 事实上IPv4时代公网IP稀缺,运营商确实没有义务为每个用户提供公网IP,分配内网IP也是实属无奈之举。 但是有人想要使用...

我想要很长很长的名字
2016/04/19
4.5K
10
把iptables防火墙配置为网关服务器

Linux防火墙除了提供数据包过滤功能外,还提供了一些基本的网关应用,本篇博客将介绍iptables防火墙的SNAT和DNAT策略:局域网共享一个公网IP地址接入Internet;向Internet发布位于内网的应用...

杨书凡
01/03
0
0
网络通---一款新的端口映射优秀工具

越来越多的用户没有自己的独立公网IP,在发布一些应用或者网站到外网的时候就是一件很麻烦的事情。请注意,我说的独立公网IP并不是说一定要静态公网IP。拨号上网动态IP也不一定不可以。我们要...

874732070
04/30
0
0
一款好用的内网穿透工具,拯救没有公网IP的你

越来越多的用户没有自己的独立公网IP,在发布一些应用或者网站到外网的时候就是一件很麻烦的事情。请注意,我说的独立公网IP并不是说一定要静态公网IP。拨号上网动态IP也不一定不可以。我们要...

874732070
03/25
0
0
备忘---上传超过4G大文件到百度云盘方法

百度云盘通过注册和绑定银行卡可以有2T的免费空间,但是在使用过程中有个4G文件的限制,文件大于4G不允许上传,但是我们实际使用过程中会涉及到一些操作系统的镜像文件很可能超过4G,现在记录...

余伟兵
04/16
0
0
如何优雅的使用Mac进行远程控制

0x00 前言 前段时间一直在抓取一个站点,这个站点非常难爬取,原因如下: 第一点,网站Ajax超级多. 第二点,所有的API都是js加密后才能访问. 第三点,这也是最最要命的一点,访问特别特别不稳定.有的...

无与童比
2016/05/14
0
0
基于jenkins结合svn、ansible、shell和mysql版本迁移实现多服务器批量发布

hello,大家好! 由于工作原因,本篇博文迟迟没有发布上来,在此深表歉意!因宅鸟作为一个老鸟,还有很多东西需要和大家分享,所以宅鸟有意将本篇博文作为Jenkins持续集成自动测试部署系列的收...

birdinroom
06/28
0
0
中国电信开始屏蔽所有ADSL用户80端口

中国电信已经将所有ADSL用户80(http)端口屏蔽,使用“花生壳”等工具在ADSL用户电脑发布网站将无法使用默认http端口访问。 据说某位网友咨询电信服务热线后,得到相关回复是:中国电信关怀...

红薯
2009/12/30
3.1K
18
使用 FRP 反向代理实现 Windows 远程连接

互联网普及率的日渐攀升与 IPv4 资源的持续减少,现在大部分家庭宽带都不会分配公网 IP ,这使一些网络应用的实现多了些困难,像个人的 NAS 和一些智能家居设备。对于分配公网 IP ,各地运营...

张高兴
06/24
0
0
善忘技术夹/hskserver

#hskserver 作为一个程序员,如果有自己的服务器,做个svn什么的,放点代码, 做个网站,存放一些数据, 在外面通过网络能直接访问, 这也算是一个比较美好的事情吧。当然,在天朝, 就不要期...

善忘技术夹
2016/01/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
9分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
9分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
10分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
13分钟前
1
0
新生代Eden与两个Survivor区的解释

聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我...

浮躁的码农
15分钟前
0
0
【JVM】JSTATD结合Java VisualVM进行远程监控JVM运行情况(二)

内存泄露指的是程序中动态分配内存给一些临时对象,但是对象不会被GC(java垃圾回收机制gabage collection)所回收,它始终占用内存。即被分配的对象很大但已无用; 内存溢出指的是程序运行过...

大白来袭
18分钟前
2
0
聊聊ribbon的超时时间设置

序 本文主要研究一下ribbon的超时时间设置 配置 实例 ribbon: ReadTimeout: 10000 ConnectTimeout: 10000 MaxAutoRetries: 0 MaxAutoRetriesNextServer: 1 eureka: enabled: ......

go4it
26分钟前
0
0
一行代码结果叹为观止,能做到这么极致的也只有python了

Python 这门语言非常的有趣,不仅可以做高大上的人工智能、大数据、机器学习。还可以用来做 Web、爬虫。还有其它很多的应用。今天我就给大家展示下一行 Python 代码都可以做些什么。 一行打印...

猫咪编程
30分钟前
2
0
KingShard使用

对于kingshard的功能,在git中可以看到明确的功能说明 主要功能: 1. 基础功能 支持SQL读写分离。 支持透明的MySQL连接池,不必每次新建连接。 支持平滑上线DB或下线DB,前端应用无感知。 支...

mickelfeng
32分钟前
0
0
Linux 下 查找某个字符串

如果你想在当前项目下 查找 "test" 这个字符串,可以这样: grep -rn "test" * * : 表示当前目录所有文件,也可以是某个文件名-r 是递归查找-n 是显示行号-R ...

nsns
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部