内网穿透教程,超详细

前言

​ 由于工作需要使用服务器的IP是内网IP,在家之后就没有办法远程办公了。所以在网上搜了一些关于内网穿透的一些教程。最开始使用的是cpolar,这个不需要root权限,也不需要公网ip,就直接可以做内网穿透,但是缺点就是,他提供的连接隧道是不稳定的,每个24小时都会切换一下端口,所以不符合我的需求。但是在后面说教程的时候,我会简单的提一下这个该怎么用。主要还是讲一下关于frp内网穿透。
注意frp我试了一下,穿透一台客户端还行,穿透多台的时候会出问题,建议大家下载0.58.1版本的frp,文章内容我也做了一些更新。—2024.6.9

1. Cpolar内网穿透
1.1注册cpolar账号

​ cpolar一般用于临时内网穿透,首先需要去官网注册一个账号:https://www.cpolar.com,选择免费的套餐就可以了,这个我就不赘述了。

1.2无root安装screen

一般内网穿透的进程都需要后台运行的,直接终端运行的话就是前台进程,关闭当前终端之后这个进程也会被随之杀死,所以是不可行的。当然可以使用nohup命令,但是不方便管理,screen是一个不错的选择用于管理不同的任务,如果你已经安装过了screen就可以跳过这个步骤了,这里讲的是不需要root安装screen。

#进入你想安装screen的目录下面,我一般是选择一个创建一个app目录,然后在下面放一些应用。
cd
mkdir app
cd app & mkdir screen
cd screen
pwd
#复制pwd的输出的路径

#进入scream目录之后开始下载安装包
wget http://ftp.gnu.org/gnu/screen/screen-4.9.0.tar.gz
#解压
tar -zxvf screen-4.9.0.tar.gz
cd screen-4.9.0

#运行指令产生编译环境,编译、安装
./autogen.sh
./configure --prefix= 粘贴刚才复制的路径
make
make install

#添加环境变量
vim ~/.bashrc
#在最后一行追加如下内容,保存退出
export PATH=粘贴刚才复制的路径/bin:$PATH
#更新环境变量
source ~/.bashrc
1.3下载cpolar
#在app目录下创建一个新的文件夹cpolar
cd ~/app & mkdir cpolar
#下载解压
wget https://static.cpolar.com/downloads/releases/3.3.12/cpolar-stable-linux-amd64.zip
unzip cpolar-stable-linux-amd64.zip
cd cpolar-stable-linux-amd64/

#复制pwd的输出的路径
pwd
#添加cpolar的环境变量
vim ~/.bashrc
#最后一行追加如下内容
export PATH=粘贴刚才复制的路径:$PATH
#更新环境变量
source ~/.bashrc
1.4配置内网穿透
cpolar version

如果能显示cpolar版本号,则证明环境变量配置正确。

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,复制里面的命令运行即可。

在这里插入图片描述

随后我们开启一个screen,开启cpolar进程

#开启一个新的screen,名称为keep_cpolar
screen -S keep_cpolar
#启动cpolar
cpolar start-all -daemon=on  -dashboard=on  -log=stdout

先按ctrl+A,再按ctrl+D,退出screen界面,实现后台挂载。简单说一下screen的常用命令

screen -S cpolar #创建名称为cpolar的screen窗口
screen -ls #查看有哪些窗口
screen -r name #回到对应的窗口
exit #结束掉当前窗口,返回之前的窗口,注意直接杀掉了就没了,要用ctrl+A,再按ctrl+D实现后台挂载

进入后台管理,浏览器输入http://你的局域网ip:9200,如跳出以下界面成功访问。账号密码为cpolar官网注册的账号密码,你可以在改面板中创建管理隧道。

在这里插入图片描述

2. frp内网穿透

frp内网穿透更稳定点,不会周期性的更换端口号,但是需要在服务端有root权限,且服务端是一个公网ip。简单说frp分为三个部分

  1. 被连接服务器A(公司电脑,学校服务器,内网当中在家无法直接链接)
  2. 中介服务器C(可以被公网访问ip的终端,例如阿里云服务器)
  3. 想要连接服务器A的电脑B(家里的电脑,想要去连接服务器的电脑)

可见cpolar虽然没找我们要公网IP,是因为他自己提供了中介服务器C,所以找我们收费升级更稳定更快的服务。

2.1下载frp

一般linux服务器都是x86的我们下载https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz这个就好了。你可以运行uname -m来确定自己处理器是什么架构的,来下载对应的安装包

输出架构
i386, i686i386
x86_64amd64
arm, armelarm_garbage
armv7l, armhfarmv7**
aarch64, armv8larm64
mipsmips*
mips64mips64*

下载完成之后,将其解压整个命名为frp,然后放在app目录下,就不赘述了。
在这里插入图片描述

可以看到里面主要有这些文件,其中frpc表示frp的client客户端需要运行的程序,也就是内网中需要被穿透的主机。frps表示中介服务器,即带有公网IP的服务器作为服务端。

2.2配置中介服务器C

编辑frps.ini

vi frps.toml

#将其内容修改如下
# frps.toml
bindPort = 7000 				# 服务端与客户端通信端口

transport.tls.force = true		# 服务端将只接受 TLS链接

auth.token = "public" 			# 身份验证令牌,frpc要与frps一致

# Server Dashboard,可以查看frp服务状态以及统计信息
webServer.addr = "0.0.0.0"		# 后台管理地址
webServer.port = 7500 			# 后台管理端口
webServer.user = "admin"		# 后台登录用户名
webServer.password = "admin"	# 后台登录密码

编辑完成之后,我们同样创建一个frps的screen然后运行

screen -S frps
./frps -c frps.toml

#CtrlA+D后台挂起

可以在浏览器中输入服务器C的公网IP:7500查看是否有frp的面板。如果有,则服务端的frp配置完成。

2.3配置内网主机A

同样还是需要下载frp的文件,解压。不过这次我们配置的文件是frpc.ini

vi frpc.toml  (注意哦,不是frps.toml)

# 客户端配置
# frpc.toml
transport.tls.enable = true		# 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "x.x.x.x"
serverPort = 7000 				# 公网服务端通信端口

auth.token = "public" 			# 令牌,与公网服务端保持一致

[[proxies]]
name = "test-http"
type = "tcp"
localIP = "127.0.0.1"			# 需要暴露的服务的IP
localPort = 9000				# 将本地9000端口的服务暴露在公网的6060端口
remotePort = 6060 				# 暴露服务的公网入口

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

编辑完成之后,我们同样创建一个frpc的screen然后运行

screen -S frpc
./frpc -c frpc.toml

#CtrlA+D后台挂起

如果提示没有什么关键字啥的,那就把注释去掉,新版的好像不支持注释了。如果提示success那就是部署完成了。

现在我们可以在家里的连接内网的服务器了。

ssh -p 6000 name@xxx.xxx.xxx.xxx

要注意到这的xxx.xxx.xxx.xxx是中介服务器C的公网IP,但是这里的name是被连接服务器A的用户名。这里使用的6000端号是和被连接服务器A中frpc.ini配置文件中的remote_port端口对应的。输入的密码也应该是被连接服务器A的name用户的密码,而并不是中介服务器C的密码。

特别注意:中介服务器B的相关端口一定要开放,不然是无法访问的主要就是6000 7500.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值