内网穿透入门使用(frp和natapp)

我的博客:Lichg,欢迎大家访问留言。

简单介绍

  • 什么是内网穿透:

    首先我们对内网和外网这两个名词做个解释:

    1、内网:是内部建立的局域网络或办公网络;

    2、外网:是通过一个网关或网桥与其他网络系统连接,相对于自己的内网来说,其他网络系统称为外网。

    内网穿透简单来说就是将内网外网通过隧道打通,让内网的数据让外网可以获取。比如常用的办公室软件等,一般在办公室应用,通过拨号上网,没有公网IP,这样办公软件只有在办公室本地的局域网之内才能访问,用了内网穿透方案后,这些基于内网访问的办公室软件就可以在外网家里访问了。

  • 如果不了解内网,公网这些概念的话,我感觉这篇文章也是看不懂,可以看看别人的文章先:内网、网关、公网IP的关系一文读懂内网、公网和NAT

穿透工具推荐

这里推荐两款我自己用的:frpnatapp

frp:

使用本款软件的话你需要本身有一台拥有公网ip的服务器才可以使用,因为这个软件要借助你自己的公网ip打通隧道将你内网的端口代理出去。可以用来打造堡垒机,跳板机等。

natapp:

这款白嫖党狂喜,因为有免费的额度,同时也不需要自己拥有服务器也可以使用,适合白嫖党。当然免费版功能上肯定是稍微拉跨点的,不过自己测试拿来玩什么的还都是没什么问题的。

Frp

Frp下载安装

打开frp官网自己选个版本下载就行了,打不开的话自己上点科技,因为是在github上面的。

这里需要注意下:frp分为服务端客户端服务端是放在你的服务器上面的,客户端时放在内网机器上的,当然下载的时候你要匹配自己系统就行了,linux就下载linux版本,windows就下载windows版本。

我这里服务端是linux,客户端是windows的

image-20240527153818056

下载完成后,linux的直接传到服务器上解压即可。windows也是解压就行了。

服务端配置

解压完成后文件如下:

image-20240527154125529

其中这里面的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:

  1. 如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

  1. 使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。
sudo vim /etc/systemd/system/frps.service
  1. 写入内容
[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

  1. 使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
  1. 设置 frps 开机自启动
sudo systemctl enable frps

image-20240527160618496

这样就是启动好了。

配置客户端

image-20240527160727421

同样,解压出来还是这些熟悉的文件,注意:不要直接点击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文件即可

image-20240527162332199

你想要关闭的时候最好是采用ctrl+c的按键方式关闭,最好不要直接点击关闭。

效果查看

启动后会被阻塞,就是启动成功了。你现在就可以到你的可视化界面查看了,就是默认7500端口的那个。

image-20240527162012320

这里就能看到效果了,当然服务端那边也可以查看了,如下图:

image-20240527162133777

这样就是成功了,你的内网能够被所有人访问了。

堡垒机/跳板机:

这里稍微讲一下堡垒机和跳板机就行了,跳板机属于堡垒机的一种,你没有公网的服务器是没办法直接被访问的,所以需要一台有公网的作为跳板,使用frp,将内网服务器的22端口代理出去,这样就能通过跳板操作内网服务器了。

NATApp

NATApp下载安装

直接到NatApp官网进行下载,一般是内网的客户端下载,所以我这里就是windows版本了:

image-20240527163029995

下载完成后,直接解压就行,里面只有一个exe执行文件。

NATApp配置

仍然是打开natapp的官网,注册一个账号,如果已有账号直接登录即可。

登陆后到达控制台:

image-20240527163718447

购买一个免费的隧道:

image-20240527163920656

买完以后,点击我的隧道,复制authtoken待会要用:

image-20240527164031490

复制完,回到你的电脑创建一个文件夹,将你下载的natapp.exe文件放进去,同时再创建一个config.ini文件:

image-20240527164151464

其中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文件存储,可以通过天联实现远程共享、下载、上传;

其他使用途径

如若还有其他的使用途径,靠大家自己发现。

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的菜鸟Run

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值