| 2024-07-21
在通常情况下,内网是指家庭网络或企业内部网络,为了保护网络安全,一般不允许别人直接访问内网。然而,在某些特定需求下,可能需要让外部人员访问内网中的资源,以下是一些常见的实现方式,但请注意,这些方法需要谨慎使用,并确保采取适当的安全措施来保护内网安全。
一、虚拟专用网络(VPN)
虚拟专用网络是通过在公共网络上建立加密隧道,将外部用户的流量安全传输到企业内网的方法。用户可以通过虚拟专用网络连接到内网,享受与直接连接内网一样的资源访问权限。
优点:安全性和灵活性较高,通过使用加密协议,可以保护数据的隐私和完整性,阻止未经授权的访问;可在任何有 internet 连接的地方实现远程访问。
缺点:设置和维护可能需要一定的技术知识,并且连接速度可能受到公共网络的限制。
二、远程桌面协议(RDP)
远程桌面协议允许用户通过互联网从远程位置访问和控制内网中的计算机。通过 RDP,用户可以远程登录到内网计算机,并在自己的计算机上查看和操作内网计算机的界面。
优点:提供实时的界面共享和直接访问内网资源的能力,用户可以像使用本地计算机一样操作远程桌面,而不需要在本地安装应用程序。
缺点:需要进行适当的安全配置,以避免潜在的攻击;连接速度可能受到互联网带宽限制的影响。
三、端口映射
端口映射也叫虚拟映射,是在连接外网的路由器上做一个端口映射的设置,将访问该路由器外网地址和特定端口的服务映射到内网的一台电脑的某一个端口上。
步骤如下:
确定拥有公网 IP:联系网络服务提供商(如运营商),要求分配公网 IP。但需注意,运营商通常只对公司分配固定公网 IP,且公司需申请公司宽带,个人用户较难获得。若公网 IP 是动态的,可采用申请固定 IP 或域名服务的方法解决。
设置端口映射:以华为路由器为例,登录路由器,找到端口映射相关设置选项,添加映射规则,将外网访问的特定端口(如 10101)映射到内网电脑的对应端口(如 10101)。
访问内网:在外网浏览器中输入公网 IP 和映射的端口(如 122.15.244.39:10101),即可访问内网对应的服务或资源。
注意事项:
选择外部端口时,避免常用的 80、21 等端口,因为路由器可能会屏蔽这些端口。
服务器需要连接到包含公网 IP 的服务器上。
四、隧道技术
常用的隧道技术包括 SSH(Secure Shell)和 SSL(Secure Sockets Layer)等。通过隧道技术,可在公共网络上建立加密通道,将内网数据封装传输到外部网络,从而实现安全访问内网。
优点:配置和管理相对复杂,但安全性较高,且不受公共网络速度的限制。
五、反向代理
通过在公共网络上设置代理服务器,使外部用户可以访问内网资源。代理服务器充当中间人,接收来自外部用户的请求,并将其转发到内部服务器上。
优点:可以确保内网服务器的隐藏,提供更好的安全性,同时可以对访问进行控制和过滤。
缺点:可能会增加延迟,对网络性能产生一定影响。
六、内网穿透工具
例如使用花生壳等内网穿透工具。以花生壳为例,其操作步骤大致如下:
下载并登录花生壳软件。
双击想要映射的域名,进入花生壳端口映射添加界面,点击打开内网映射。
填写应用名称、内网主机(即想被公网访问的那台电脑 IP 地址)和内网端口(希望被映射的端口)。
端口映射窗口会添加一条映射记录,此时公网使用花生壳分配的域名和端口,就可以访问内网主机。
或者使用 ngrok 工具进行内网穿透,步骤如下:
注册账号并登录 ngrok 官网。
购买实名认证机会(由于一些原因,ngrok 加强了实名认证功能,可能需要支付一次性费用)。
开通隧道:在隧道管理中点击开通隧道,选择免费或付费的服务器;添加隧道,设置隧道名称、前置域名、隧道协议(如 http)和本地端口号等信息,然后点击添加隧道。
下载 ngrok 工具并解压,运行 ngrok 工具,将隧道 ID 复制进去回车,完成映射。此时就可以通过隧道管理页面赠送的域名访问内网。
七、FRP 内网穿透
FRP 是一种快速反向代理工具,可用于实现外网访问内网。
准备工具:FRP 资源包、服务器(如阿里云 ECS,学生账号可免费使用一段时间)。
具体步骤:
服务器端:
下载:使用 wget 命令下载 FRP 安装包。
解压:tar -zxvf frp_版本号_linux_amd64.tar.gz。
修改配置文件 vim frps.ini,配置 bind_port(绑定端口)等信息,如 common 部分的 bind_port=7000。若仅使用代理功能,仅配置 bind_port 即可。
启动服务:./frps -c frps.ini,若出现相关信息则启动成功,也可搭配 nohup 后台命令使用。
客户端(内网机器):
同样进行下载和解压操作。
修改客户端配置文件 vim frpc.ini,将 common 部分的 server_addr 设置为服务器公网 IP 地址,server_port 为服务器配置的端口,如 server_addr=x.x.x.x,server_port=7000;根据需求设置其他部分,如 ssh 的 type=tcp,local_ip=127.0.0.1,local_port=22,remote_port=6000 等。
启动客户端:./frpc -c frpc.ini。
若服务器使用的是阿里云服务器,需配置端口,即在实例安全组->配置规则->访问规则中添加相应端口范围,否则启动客户端 FRP 时可能会超时连接。
让别人访问内网需要一定的技术知识和谨慎操作。在实施之前,请充分了解相关风险,并根据实际需求和安全要求选择合适的方法。同时,建议仅在必要的情况下开放内网访问权限,并密切关注网络安全状况。