如何让外网访问主机服务
配置web服务器环境
暂且略过
测试环境是否可用
本机访问:
1 | $ curl localhost:2333 |
以上两种均能访问
外网访问:
1 | $ curl 124.16 :2333 |
却不能访问
此处的124.16.137.61是服务器的外网IP,可以使用
curl members.3322.org/dyndns/getip
来获取主机外网IP
关于开放主机访问端口
有两种情况:
- 主机上网没有用路由器分配IP,而是运营商单独分配一个IP,那可以直接用主机的外网IP让外网的人来访问你的网站,假设使用2333端口,所以外网的访问形式就为:XX.XX.XX.XX:2333
- 主机通过路由器获取IP,一个路由器带了多个主机,比如家里有一个路由器,三台笔记本电脑都通过这台路由器来上网。那此时需要去路由管理页面去设置一下端口映射,当别人访问IP地址时,映射到目的主机。
第二种情况涉及到路由的NAT(Network Address Translation, 网络地址转换),ISP给路由器分配了一个公网IP,但是多个主机在通过路由器上网,那么谁来用这个IP呢?我们可以这么理解:路由器给这些主机分配了内网地址,这些内网地址是不同的,能把这些主机区分出来,同一个内网里的主机之间也可以互相区分对方。但是一旦其中某些主机的服务希望被外面的网络访问(而不是被内网的主机访问),那么它就需要有一个能区分这个服务的机制,这就是NAT。
假设一个主机的内网IP为192.168.0.100,tomcat的http访问端口号设置为2333,那么组合起来就是192.168.0.100:2333,看上去好像就可以访问了。但是,这个192.168.0.100其实是内网IP地址,2333是内部端口,外面的主机和路由器根本无法知道192.168.0.100是哪里的机器。所以必须把这个192.168.0.100转换成公网IP(就是ISP分配给路由器的IP),比如124.14.137.61,同时设定一个公网IP端口,比如2222。这样192.168.0.100:2333就与124.14.137.61:2222对应上了,那么当公网访问124.14.137.61:2222时,路由器就将这个访问请求转发到192.168.0.100:2333,从而完成访问。
如何开放主机端口
情况1:
iptables管理端口
(Linux下)修改/etc/sysconfig/iptable
如果没有这个路径,那么执行一下:
就会有了。
情况2:
https://jingyan.baidu.com/article/d71306352e455a13fcf4755d.html
- 本文链接:http://katherineleeyq.cn/2018/04/24/如何让外网访问主机服务/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!