搭建内网穿透服务器
一、内网穿透简介官方说法:内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。个人理解:浏览器中我们所能访问的网站都是公网ip地址,而我们所用的网络(路由器、光猫等)都是内网,如192.168.0.1、127.0.0.1,而当我们在本地部署项目时,想让别人访问我们的本地地址(内网)来使用我们的项目,这个时
·
一、内网穿透简介
- 官方说法:内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。
- 个人理解:浏览器中我们所能访问的网站都是公网ip地址,而我们所用的网络(路由器、光猫等)都是内网,如192.168.0.1、127.0.0.1,而当我们在本地部署项目时,想让别人访问我们的本地地址(内网)来使用我们的项目,这个时候,别人是访问不了的。因为运营商出于安全策略考虑,普通用户只能使用内网。那么,这就用到内网穿透了。
- 简单来说,内网穿透就是将内网ip转为公网ip
二、内网穿透原理
-
原理图
-
原理:本地电脑通过连接公网中的电脑FRP来进行数据交互,而其他用户所获取到的数据直接来自公网电脑,而公网电脑只作为一个转接站来传输数据而不去保留数据。公网电脑的带宽直接影响到数据传输的速率。
三、在服务器上搭建FRP
-
准备工作
- VPS一台(也可以是具有公网IP的实体机)
- 访问目标设备(就是你最终要访问的设备)
- 简单的Linux基础(会用cp等几个简单命令即可)
-
服务端设置
-
使用xshell工具连接linux服务器
-
使用命令查看系统架构:arch
-
根据显示结果去下载相对应的软件
下载相对应架构的FRP版本 wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz 解压缩 tar -zxvf frp_0.22.0_linux_amd64.tar.gz 移动到自定义文件夹 cp -r frp_0.22.0_linux_amd64 frp 进入自定义文件夹 cp frp 查看文件 ls -a frps----------------->服务器端启动器 frps.ini------------->服务器端配置文件 frpc----------------->用户端启动器 frpc.ini------------->用户端配置文件
-
修改配置信息:vim frps.ini
[common] bind_port = 7000 #用户端需要连接的端口 dashboard_port = 7500 #Web监控端端口 token = 12345678 #连接秘钥 dashboard_user = admin #Web端用户名 dashboard_pwd = admin #Web端密码 vhost_http_port = 10080 vhost_https_port = 10443 #“vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。
-
启动FRP服务:./frps -c frps.ini
-
此时访问 公网ip:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面
-
将服务在后台运行
nohup ./frps -c frps.ini & #输出如下内容即表示正常运行 nohup: ignoring input and appending output to 'nohup.out' #此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序 jobs #使用kill %Id 可以关闭后台运行的程序
-
-
客户端设置
-
根据客户端设备的情况选择相应的frp程序进行下载
-
用文本编辑器打开frpc.ini,与服务端类似
[common] server_addr = 公网IP server_port = 7000 token = won517574356 [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 7001 [smb] type = tcp local_ip = 127.0.0.1 local_port = 445 remote_port = 7002 #“server_addr”为服务端IP地址,填入即可。 #“server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000 #“token”是你在服务器上设置的连接口令,原样填入即可。 #上面frpc.ini的rdp、smb字段都是自己定义的规则,自定义端口对应时格式如下。 #“[xxx]”表示一个规则名称,自己定义,便于查询即可。 #“type”表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。 #“local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。 #“remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。
-
-
客户端的frpc程序不能直接双击运行!
#使用命令提示符或Powershell进入该目录下 cd C:\frp #并执行 ./frpc -c frpc.ini #运行frpc程序,窗口中输出如下内容表示运行正常。 login to server success, get run id server udp port [0] 2019/01/12 16:14:56 [I] [proxy_manager.go:136] [2b65b4e58a5917ac] proxy added: [rdp smb] 2019/01/12 16:14:56 [I] [control.go:143] [smb] start proxy success 2019/01/12 16:14:56 [I] [control.go:143] [rdp] start proxy success
-
windows客户端配置后台运行及开机启动
#frpc运行时始终有一个命令行窗口运行在前台,影响美观,我们可以使用一个批处理文件来将其运行在后台,而且可以双击执行,每次打开frpc不用再自己输命令了。 #在任何一个目录下新建一个文本文件并将其重命名为“frpc.bat”,编辑,粘贴如下内容并保存。 @echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin REM cd C:\frp frpc -c frpc.ini exit #将cd后的路径更改为你的frpc实际存放的目录。 #之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。 #至于开机启动,把这个 .bat 文件直接扔进Windows的开机启动文件夹就好了 :) #至此,客户端配置完成,之后就是你自己根据需要在frpc.ini后追加规则即可。 #强烈建议你在使用frp直接测试内网穿透前,先在局域网内测试好相关功能的正常使用,并配置好可能会影响的Windows防火墙等内容,在内网调试通过后再使用frp进行内网穿透测试。
更多推荐
已为社区贡献2条内容
所有评论(0)