内网穿透
前言
需要从学校提供的不具名服务器上往WSL传点文件,无奈之前只在局域网内部使用过scp,于是捡起计网知识研究了一番。
公网IP / 私网IP
1. 公网(Public Network)
定义:公网是对外开放的网络,全球用户都可以通过互联网访问。
特点:
- 全球唯一IP地址:公网使用的IP地址由互联网分配机构(如ICANN)分配,每个IP地址在全球范围内都是唯一的。
- 广泛访问:用户可以通过公网访问各种服务和资源,如网站、电子邮件、在线视频等。
举例:
2. 内网(Private Network)
- 定义:内网是企业、学校或家庭等私有网络环境中使用的网络,通常用于内部通信和资源共享,外部无法直接访问。
- 特点:
- 私有IP地址:共保留三段私有IP地址段供内网使用
- 10.0.0.0 - 10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.255.255
- 不直接暴露于公网:通过路由器或防火墙与公网隔离,保障安全性。
- 安全性较高:由于内网资源无法直接被外部访问,攻击风险相对较低。
- 私有IP地址:共保留三段私有IP地址段供内网使用
- 用途:
- 企业内部办公。
- 家庭网络设备连接(如路由器、智能家居)。
- 学校或局域网的资源共享。
- 举例:
- 企业内部文件服务器。
- 家庭中的Wi-Fi网络。
使用 ifconfig/ipconfig
查看的为局域网(内网) ip地址, wlan0/以太网适配器
等代表不同的网卡分配的ip地址。如WSL在WINDOWS中可以看到 以太网适配器 vEthernet (WSL (Hyper-V firewall)
, 其ip地址与在WSL ubuntu中使用 ifconfig
查看到的ip地址一致。
特性 | 公网 | 内网 |
---|---|---|
IP地址范围 | 全球唯一的公网IP | 私有IP,不可在公网使用 |
访问范围 | 任何人都可以访问 | 仅限内部用户访问 |
安全性 | 风险较高,需加强防护 | 较安全,外部无法直接访问 |
用途 | 提供互联网服务 | 内部资源共享、局域网通信 |
连接方式 | 直接连接到互联网 | 通过路由器或NAT连接到公网 |
公网与内网的互通
1. 内网设备访问公网
内网中的设备由于使用私有 IP 地址,无法直接连接到公网。为了实现访问公网的需求,需要借助以下技术:
1.1 NAT(网络地址转换)
- 定义:NAT 是一种将内网的私有 IP 地址转换为公网 IP 地址的技术。路由器或网关设备使用 NAT,使得多个内网设备共享一个或多个公网 IP。
- 工作原理:
- 内网设备发送请求时,NAT 将设备的私有 IP 替换为路由器的公网 IP,并记录设备的会话信息。
- 公网服务器响应时,路由器通过记录的会话信息,将数据包返回到对应的内网设备。
- 优点:
- 节省公网 IP 地址。
- 增强安全性:内网设备的私有 IP 不暴露在公网。
- 常见场景:
- 家庭网络中,所有设备通过路由器访问互联网。
- 企业局域网通过一个出口访问公网。
1.2 代理服务器
- 定义:代理服务器是一种中间服务器,内网设备的请求先发送到代理服务器,由代理服务器代替设备与公网通信。
- 工作原理:
- 接受内网设备的请求。
- 将请求转发给公网服务器。
- 获取公网服务器的响应后,再将结果返回给内网设备。
- 用途:
- 缓存常用资源,提升访问速度。
- 管控和监控网络流量。
- 提供匿名访问功能,隐藏内网设备的真实 IP。
2. 公网设备访问内网资源
由于内网 IP 地址不可直接被公网访问,因此需要特殊的方法让公网设备访问到内网的资源。
2.1 VPN(虚拟专用网络)
- 定义:VPN 是一种加密的网络隧道技术,允许远程用户通过安全通道访问内网资源。
- 工作原理:
- 公网设备通过 VPN 客户端连接到内网的 VPN 服务器。
- 建立加密隧道后,公网设备会被分配一个内网 IP 地址。
- 公网设备就像直接连接到了内网,能够访问内网的资源。
- 优点:
- 安全性高,数据经过加密。
- 可远程访问内网资源,如文件服务器、数据库等。
- 常见场景:
- 远程办公,访问公司内部资源。
- 访问被防火墙或地理限制阻止的服务。
2.2 端口映射(NAT 穿透)
定义:端口映射是一种将内网资源通过路由器的公网 IP 和特定端口暴露给公网的技术。
工作原理:
- 在路由器上配置端口映射规则。
- 当公网设备访问路由器的公网 IP 和指定端口时,路由器将请求转发到对应的内网设备。
- 例如:
- 路由器公网 IP:
203.0.113.1
- 内网服务器 IP:
192.168.1.100
- 映射规则:将
203.0.113.1:8080
映射到192.168.1.100:80
- 路由器公网 IP:
公网用户访问
203.0.113.1:8080
,实际上访问的是内网服务器的80
端口。优点:
- 简单易用。
- 只需要配置路由器即可实现公网与内网的通信。
限制:
- 对端口映射数量有限制。
- 内网设备需要手动开放相关端口,增加了安全风险。
使用cpolar实现内网穿透
cpolar官网:https://www.cpolar.com/
1. 安装cpolar
1 | curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash |
2. token认证
注册cpolar账号,进入验证
查看Authtoken
在WSL中输入:
1 | cpolar authtoken xxxxxx(复制的token) |
3. 启动cpolar服务
1 | sudo systemctl start cpolar |
查看状态是否为active
1 | sudo systemctl status cpolar |
4. 查看分配公网IP
这一步需要用到浏览器,WSL上安装可参考使用 WSL 运行 Linux GUI 应用 | Microsoft Learn 。在浏览器上访问本地9200端口, 访问方式: 局域网ip:9200
,打开cpolar web ui界面, 默认会生成一个ssh名称的隧道, 可以直接跳到状态 - 在线隧道列表查看, 然后记住映射的公网ip和端口号,远程连接。
这里使用的端口已经不是默认端口22,所以应该使用 -P 参数指定
1 | scp -P XXX file username@host:dir |
这里我使用WSL时遇到了一个问题,一个是ssh默认的配置里禁止了密码登录方式,需要修改 /etc/ssh/sshd_config
,将PasswordAuthentication no
改为 PasswordAuthentication yes
- 标题: 内网穿透
- 作者: chenshan
- 创建于 : 2024-12-05 21:53:01
- 更新于 : 2024-12-06 00:00:55
- 链接: https://chenshan.link/2024/12/05/内网穿透/
- 版权声明: 版权所有 © chenshan,禁止转载。