内网穿透入门使用
- 简单介绍
- 穿透工具推荐
- Frp
- Frp下载安装
- 服务端配置
- 启动服务端
- 配置客户端
- 启动客户端
- 效果查看
- NATApp
- NATApp下载安装
- NATApp配置
- 启动NATApp
- 使用途径
我的博客:Lichg,欢迎大家访问留言。
简单介绍
-
什么是内网穿透:
首先我们对内网和外网这两个名词做个解释:
1、内网:是内部建立的局域网络或办公网络;
2、外网:是通过一个网关或网桥与其他网络系统连接,相对于自己的内网来说,其他网络系统称为外网。
内网穿透简单来说就是将内网外网通过隧道打通,让内网的数据让外网可以获取。比如常用的办公室软件等,一般在办公室应用,通过拨号上网,没有公网IP,这样办公软件只有在办公室本地的局域网之内才能访问,用了内网穿透方案后,这些基于内网访问的办公室软件就可以在外网家里访问了。
-
如果不了解内网,公网这些概念的话,我感觉这篇文章也是看不懂,可以看看别人的文章先:内网、网关、公网IP的关系, 一文读懂内网、公网和NAT。
穿透工具推荐
这里推荐两款我自己用的:frp
和natapp
。
frp:
使用本款软件的话你需要本身有一台拥有公网ip的服务器才可以使用,因为这个软件要借助你自己的公网ip打通隧道将你内网的端口代理出去。可以用来打造堡垒机,跳板机等。
natapp:
这款白嫖党狂喜,因为有免费的额度,同时也不需要自己拥有服务器也可以使用,适合白嫖党。当然免费版功能上肯定是稍微拉跨点的,不过自己测试拿来玩什么的还都是没什么问题的。
Frp
Frp下载安装
打开frp官网自己选个版本下载就行了,打不开的话自己上点科技,因为是在github上面的。
这里需要注意下:frp分为服务端
和客户端
服务端是放在你的服务器上面的,客户端时放在内网机器上的,当然下载的时候你要匹配自己系统就行了,linux就下载linux版本,windows就下载windows版本。
我这里服务端是linux,客户端是windows的
下载完成后,linux的直接传到服务器上解压即可。windows也是解压就行了。
服务端配置
解压完成后文件如下:
其中这里面的frpc
是客户端的启动程序,因为我们这里是做服务端的,所以这个没用,你可以选择保留或者直接删除。frps
是服务端的启动程序,我们待会要用这个。
toml
结尾的文件是对应的配置文件,如果你的版本比较落后的话应该是ini
结尾的配置文件,新版的应该都改成toml
结尾的文件了。
服务端配置:
# frp监听的端口,默认是7000,可修改
# bindAddr = "0.0.0.0" # 绑定地址,0.0.0.0 表示监听所有地址
bindPort = 7000
# 开启Dashboard用于管理和查看服务状态。Dashboard端口、用户名和密码,请改成更复杂的。
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "登陆账号"
webServer.password = "登陆密码"
# 授权码,请改成更复杂的,这个token之后在客户端会用到
auth.method = "token"
auth.token = "这里可以自己生成一个密钥(多少位自己随意)"
# 去除访问限速
transport.tcpMux = false
# frp日志配置
log.to = "/export/frp/logs/frps.log" # 日志路径按照自己的需求更改
log.level = "info"
log.maxDays = 3
如果对这些参数有些疑问什么的,可以自行到手册官网自行查看。
启动服务端
如果你想使用systemctl
来控制frp:
- 如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如
yum
(适用于 CentOS/RHEL)或apt
(适用于 Debian/Ubuntu)来安装它:
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd
# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd
- 使用文本编辑器 (如 vim) 在
/etc/systemd/system
目录下创建一个frps.service
文件,用于配置 frps 服务。
sudo vim /etc/systemd/system/frps.service
- 写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = 你的frpc的路径 -c 你的frps.toml的路径
[Install]
WantedBy = multi-user.target
- 使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
- 设置 frps 开机自启动
sudo systemctl enable frps
这样就是启动好了。
配置客户端
同样,解压出来还是这些熟悉的文件,注意:不要直接点击exe文件启动,要使用cmd命令启动。
如下是客户端的配置:
# 服务端公网IP、监听端口bind_port
serverAddr = "43.139.50.156"
serverPort = 7000 #这里跟服务端必须一样
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "登陆账号"
webServer.password = "登陆密码"
# 授权码
auth.method = "token"
auth.token = "这里可以自己生成一个密钥(多少位自己随意)"
# 设置心跳
auth.additionalScopes = ["HeartBeats"]
# 去除访问限速
transport.tcpMux = false
# frp日志配置
log.to = ".logs/frpc.log"
log.level = "info"
log.maxDays = 3
[[proxies]]
name = "代理的名称"
type = "tcp"
localIP = "127.0.0.1"
localPort = 51602 # 内网需要代理的端口
remotePort = 24524 # 访问服务端的端口
# 解释下上面的这两个端口什么意思 localPort 是你内网需要被代理的端口 ,remotePort是你服务端要访问的端口, 实际上 比如你服务端的ip地址是 1.1.1.1 客户端的地址是192.168.101.101,那么我访问 1.1.1.1:24524就实际访问到的是你192.168.101.101:51602
[[proxies]]
name = "代理的名称2"
type = "tcp"
localIP = "127.0.0.1"
localPort = 51601
remotePort = 24525
# name 为服务名称,下方解释:访问frp服务端的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# localIP 为中转客户端实际访问的IP
# localPort 为目标端口
# remotePort 为远程端口,记得服务端的防火墙打开这个端口
启动客户端
使用cmd进入到frp的目录,使用如下命令启动,不可以直接点击exe执行文件启动。
frpc.exe -c frpc.toml
如果你嫌麻烦,每次都要使用命令启动,你可以将此命令封到bat
文件中,只需要启动bat文件即可
你想要关闭的时候最好是采用ctrl+c
的按键方式关闭,最好不要直接点击关闭。
效果查看
启动后会被阻塞,就是启动成功了。你现在就可以到你的可视化界面查看了,就是默认7500端口的那个。
这里就能看到效果了,当然服务端那边也可以查看了,如下图:
这样就是成功了,你的内网能够被所有人访问了。
堡垒机/跳板机:
这里稍微讲一下堡垒机和跳板机就行了,跳板机属于堡垒机的一种,你没有公网的服务器是没办法直接被访问的,所以需要一台有公网的作为跳板,使用frp,将内网服务器的22
端口代理出去,这样就能通过跳板操作内网服务器了。
NATApp
NATApp下载安装
直接到NatApp官网进行下载,一般是内网的客户端下载,所以我这里就是windows版本了:
下载完成后,直接解压就行,里面只有一个exe执行文件。
NATApp配置
仍然是打开natapp的官网,注册一个账号,如果已有账号直接登录即可。
登陆后到达控制台:
购买一个免费的隧道:
买完以后,点击我的隧道
,复制authtoken
待会要用:
复制完,回到你的电脑创建一个文件夹,将你下载的natapp.exe
文件放进去,同时再创建一个config.ini
文件:
其中config.ini
中的内容是:
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
#对应一条隧道的authtoken
authtoken=这里粘贴你刚才复制的authtoken
clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
如果对配置文件有疑问,可以了解 官方配置。
启动NATApp
直接点击natapp.exe
执行即可,他会自动读取配置文件。
使用途径
场景一:企业远程办公
企业用户购买了企业管理系统、财务系统、人力资源系统,分公司与总部不在同一城市,分公司需要远程访问总部系统;
场景二:开发人员远程调试
放在家里的树莓派,服务器等,需要远程ssh管理,这样打通服务器的22端口即可远程通过ssh操作服务器了.
场景三:数据远程同步
一些企业内部数据库,由于安全等原因,不愿意放到云服务器上,可以将数据库放到办公室本地,然后通过天联传输通道传输,这样既保证安全,又保证公网可以正常访问
场景四:远程监控
一些设备的运行监控信息,可以远程监控管理,可以方便的管理监控各个设备的运行情况.
场景五:远程联机游戏
这里我简单说一下我的世界游戏联机,我的世界联机的话,创建完以后,开放联机的时候会产生一个端口,无论你是用frp还是natapp都可以使用的,你的朋友输入如果是frp的话就输入服务端的ip+端口,如果是natapp的话会产生一个url完事就能联机了。
场景六:文件远程共享
FTP共享文件、NAS文件存储,可以通过天联实现远程共享、下载、上传;
其他使用途径
如若还有其他的使用途径,靠大家自己发现。