前言
emm因为学校里有一些服务必须用到校园网才能访问,而我有时候可能会长时间不在学校(回家啊出去玩什么的),这时候要访问这些内网服务就很麻烦~~(包括我们实验室的靶场也需要校园网西八)~~,本科期间我的舍友搭了个内网穿透,通过在浏览器中搭载一个proxy SwitchyOmega插件设置我们搭建好的代理服务器后,即可在浏览器中访问我们想要访问的内网服务了,因此这次我也照葫芦画瓢自己搭一个内网穿透。
知识点
frps、socks5、http代理、云服务器、防火墙、内网穿透
搭建过程
①前期准备
本实验方案需要用到一台有公网ip的云服务器(租vps一般都会有公网ip的)和一台连接了内网的设备,我这里用的是一台华为云Flexus云服务的vps和一台小工控机(就是前面做软路由用到的J1900)。VPS的系统版本是CentOS 8.2,工控机的系统版本是Ubuntu 22.04.4
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压
这里用到的frp版本为0.44.0(有更高的版本,但新的版本配置语法改动较大,比较麻烦),可以在这里:https://github.com/fatedier/frp/releases 获取对应的版本,然后放到vps和本地设备中,进行解压 token = xxx # frp客户端连接时的密码,可以自行调整
获取对应的版本,然后放到vps和本地设备中,进行解压 token = xxx # frp客户端连接时的密码,可以自行调整 dashboard_pwd = xxx # web界面的登录密码,可以自行调整 authentication_method = token # 认证方法 token = xxx # frp客户端连接时的密码,可以自行调整 dashboard_pwd = xxx # web界面的登录密码,可以自行调整 authentication_method = token # 认证方法 token = xxx # frp客户端连接时的密码,可以自行调整 dashboard_pwd = xxx # web界面的登录密码,可以自行调整 ./frps -c ./frps.ini # 可以在最后面加个&实现后台运行 token = xxx # frp客户端连接时的密码,可以自行调整 dashboard_pwd = xxx # web界面的登录密码,可以自行调整 ./frps -c ./frps.ini # 可以在最后面加个&实现后台运行
运行后显示如下则代表成功启动
dashboard_pwd = xxx # web界面的登录密码,可以自行调整
./frps -c ./frps.ini # 可以在最后面加个&实现后台运行
1配置完成后,将frps设置为系统服务
2```python
3新建frps服务配置文件
4vim /etc/systemd/system/frps.service
5运行后显示如下则代表成功启动
6# 配置如下
7
8[Unit]
9Description=FRPS Server
10After=network.target
11
12[Service]
13Type=simple
14ExecStart=/root/data/frp/frp_0.44.0_linux_amd64/frps -c /root/data/frp/frp_0.44.0_linux_amd64/frps.ini
15Restart=on-failure
16StandardOutput=append:/var/log/frps.log # 将标准输出至/var/log/frps.log
17StandardError=append:/var/log/frps.log # 将错误输出至/var/log/frps.log
18
19[Install]
20WantedBy=multi-user.target配置完成后重新加载服务daemon,开启frps服务
1systemctl daemon-reload
2systemctl start frps
3systemctl status frps[common]
./frps -c ./frps.ini # 可以在最后面加个&实现后台运行
token = ikaros1264 # frp客户端连接时的密码,可以自行调整
运行后显示如下则代表成功启动
server_addr = xxx.xxx.xxx.xxx # 云服务器的公网IP authentication_method = token # 认证方式 server_port = 7000 # 配置的frp的服务端口 token = xxx # 配置的frp的连接密码 dashboard_user = 2hi5hu # web界面的登录账户,可以自行调整 运行后显示如下则代表成功启动
local_ip = 127.0.0.1 # 本机的内网IP地址 local_port = 22 # ssh的端口 server_port = 7000 # 配置的frp的服务端口 token = xxx # 配置的frp的连接密码
1运行后显示如下则代表成功启动
2local_ip = 127.0.0.11 # 本机的内网IP地址
3local_port = 3389 # rdp的端口
4local_port = 22 # ssh的端口
5server_port = 7000 # 配置的frp的服务端口
6token = xxx # 配置的frp的连接密码
7
8remote_port = 6000 # http的代理端口
9plugin = http_proxy # 使用http代理的插件
10local_port = 3389 # rdp的端口
11local_port = 22 # ssh的端口
12server_port = 7000 # 配置的frp的服务端口
13token = xxx # 配置的frp的连接密码./frpc -c ./frpc.ini #可以在最后面加个&实现后台运行
plugin = http_proxy # 使用http代理的插件
local_port = 3389 # rdp的端口
local_port = 22 # ssh的端口
server_port = 7000 # 配置的frp的服务端口
运行后显示如下则代表成功启动,成功连接上服务端
token = xxx # 配置的frp的连接密码

配置完成后,将frpc设置为系统服务
1新建frpc服务配置文件
2vim /etc/systemd/system/frpc.service
3
4# 配置如下
5
6[Unit]
7Description=FRPC Server
8After=network.target
9
10[Service]
11Type=simple
12ExecStart=/root/data/frp/frp_0.44.0_linux_amd64/frpc -c /root/data/frp/frp_0.44.0_linux_amd64/frpc.ini
13Restart=on-failure
14StandardOutput=append:/var/log/frpc.log # 将标准输出至/var/log/frpc.log
15StandardError=append:/var/log/frpc.log # 将错误输出至/var/log/frpc.log
16
17[Install]
18WantedBy=multi-user.target配置完成后重新加载服务daemon,开启frpc服务
1systemctl daemon-reload
2systemctl start frpc
3systemctl status frpc./frpc -c ./frpc.ini #可以在最后面加个&实现后台运行 plugin = http_proxy # 使用http代理的插件 local_port = 3389 # rdp的端口 local_port = 22 # ssh的端口 这时就可以访问内网的服务啦(校园网的服务之类的) server_port = 7000 # 配置的frp的服务端口 运行后显示如下则代表成功启动,成功连接上服务端
token = ikaros1264 # 配置的frp的连接密码

1+ 插件用Socks5好像不能成功代理,暂时不太清楚是为什么,有可能是因为google浏览器中`SwitchyOmega`插件本身不支持Socks5代理
2+ 持久化做的有点问题,一关finalshell ftp服务就会断,暂时不知道为啥,到时候要处理一下
3
4./frpc -c ./frpc.ini #可以在最后面加个&实现后台运行
5plugin = http_proxy # 使用http代理的插件
6local_port = 3389 # rdp的端口
7local_port = 22 # ssh的端口
8这时就可以访问内网的服务啦(校园网的服务之类的)
9token = ikaros1264
10运行后显示如下则代表成功启动,成功连接上服务端
11
12
13
14[ssh]
15+ 插件用Socks5好像不能成功代理,暂时不太清楚是为什么,有可能是因为google浏览器中`SwitchyOmega`插件本身不支持Socks5代理
16+ 持久化做的有点问题,一关finalshell ftp服务就会断,暂时不知道为啥,到时候要处理一下
17
18./frpc -c ./frpc.ini #可以在最后面加个&实现后台运行
19plugin = http_proxy # 使用http代理的插件
20local_port = 3389 # rdp的端口
21remote_port = 20022
22这时就可以访问内网的服务啦(校园网的服务之类的)
23
24运行后显示如下则代表成功启动,成功连接上服务端
25
26[rdp]
27
28type = tcp
29+ 插件用Socks5好像不能成功代理,暂时不太清楚是为什么,有可能是因为google浏览器中`SwitchyOmega`插件本身不支持Socks5代理
30+ 持久化做的有点问题,一关finalshell ftp服务就会断,暂时不知道为啥,到时候要处理一下
31
32./frpc -c ./frpc.ini #可以在最后面加个&实现后台运行
33plugin = http_proxy # 使用http代理的插件
34remote_port = 23389
35
36这时就可以访问内网的服务啦(校园网的服务之类的)
37[http_proxy]
38运行后显示如下则代表成功启动,成功连接上服务端
39
40type = tcp
41
42remote_port = 6000
43+ 插件用Socks5好像不能成功代理,暂时不太清楚是为什么,有可能是因为google浏览器中`SwitchyOmega`插件本身不支持Socks5代理
44
45./frpc -c ./frpc.ini #可以在最后面加个&实现后台运行配置好后执行下面的命令 这时就可以访问内网的服务啦(校园网的服务之类的)
运行后显示如下则代表成功启动,成功连接上服务端
1
2./frpc -c ./frpc.ini
3+ 插件用Socks5好像不能成功代理,暂时不太清楚是为什么,有可能是因为google浏览器中`SwitchyOmega`插件本身不支持Socks5代理这时就可以访问内网的服务啦(校园网的服务之类的)
最后在omega中配置好即可实现内网穿透

- 插件用Socks5好像不能成功代理,暂时不太清楚是为什么,有可能是因为google浏览器中
SwitchyOmega插件本身不支持Socks5代理
③遇到的问题
- 客户端连接不上服务端,显示连接超时——配置vps的安全组,将用到的端口都开放,并且要在vps里开放防火墙的用到的端口(只配置安全组不行一样会超时)
Comments will be available soon.