admin 管理员组

文章数量: 887021

文章目录

    • 背景
      • 不足
    • 判断网络是否满足该内网穿透条件
      • 不满足条件的网络结构
      • 满足条件的网络结构
    • 【核心】路由转发配置
    • 验证内网穿透成功

背景

前提条件:路由器要有公网IP,或者已经足够你使用的内网IP;
这篇文章的背景:我的一台服务器在楼下办公室,我想远程登陆该服务器。

所幸的是该服务器连接的路由器有公网IP,这样我给该路由器配置内网穿透后,我在楼上就能远程连接上该服务器了。

不足

我这种方法只能实现,把能够转发给路由器的包,转发给路由器下的服务器。
言外之意就是,无法发送给路由器的数据包,那也无法转发给服务器;比如:我在家里,那便无法连接服务器了;

该不足的解决办法:使用学校或者公司的VPN,在家里也能通过内网穿透方式连上服务器;

有的读者就要问了:“你的路由器不是已经有公网IP吗?为什么数据包无法发送到你的路由器上?”
回答:“笔者在一个大的网络下,类似校园网/公司网,虽然我的路由器有公网IP,但这个公网IP是公司分配的,公司网的边缘有一个大的网关(防火墙),用来屏蔽掉外界发送来的流量。”

判断网络是否满足该内网穿透条件

不满足条件的网络结构

使用 traceroute baidu, 判断自己主机的局域网结构;

如果该主机需要经过内网转发,才能到达公网主机,这样的网络结构无法利用路由器的路由转发做内网穿透:

其实如果你已经在公司,你只想连接隔壁或者楼下的服务器,路由器没有公网IP也可以,只要你发送的数据包能够达到该路由器。

我使用 traceroute baidu 只是为了大家直观的看出网络结构,其实最简单的方法是:ping 路由器ip。如果能够ping通路由器,那便可以给该路由器设置路由转发;

满足条件的网络结构

比如,192.168.31.1 是我的路由器,它的下一条就是公网IP;

【核心】路由转发配置

笔者使用小米路由器,小米路由器的后台管理页面地址:http://miwifi

点击右侧的互联网,即可看到路由器的公网IP。

小米路由器的 高级设置/端口转发,如下图所示,可以选择端口转发或者DMZ,我使用的是DMZ 填写服务器的内网IP;

验证内网穿透成功

方法一: ssh 远程登陆服务器,ssh 用户@ip
方法二:内网主机部署一个网页,看外部是否能够访问;
我使用 vscode 的Live Server 部署网页,很简单只需要编写一个html文件,便可实现部署;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>Hello Ubuntu!</p>
</body>
</html>

如何启动 live server:
鼠标右键该html选 open with live server,或者 vscode 界面右下角的 Go Live

我连接手机热点,保证我的设备不在内网中,然后开启VPN,访问路由器的地址,路由器将数据包,转发给直连的服务器。如下图所示,成功实现页面访问。

本文标签: 内网 校园网 路由器 局域网 公司