【经验】内网穿透教程——配置SSH连接(云服务器+frp)——适用于校园内网,公司内网等

2023-05-16

本章节适用于有闲置云服务器,且有外网连接内网需求的人学习!

文章目录

    • 1.安装并配置frp
      • 1.1. 服务端安装frp
      • 1.2. 客户端安装frp
    • 2.设置自启动——开机自启动
      • 2.1. 服务端
      • 2.2. 客户端
    • 3. 设置守护进程
      • 3.1.编写守护进程脚本——仅客户端
      • 3.2.定时启动

配置一览:

服务端:centos8 + intel

客户端: ubuntu18.04 + intel
参考:

  1. 安装frp
  2. 通过 SSH 访问内网机器
  3. crontab配置的两种方式

1.安装并配置frp

1.1. 服务端安装frp

  1. github下载frp:Releases · fatedier/frp (github.com)

下载软件版本可根据下表选择(本人机器为x86_64-ubuntu18.04系统,故下载amd64版本):

linux系统可通过arch命令查询架构

在这里插入图片描述

  1. 解压下载的软件包
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
  1. 配置frps.ini,具体内容如下
#进入到解压目录
cd frp_0.38.0_linux_amd64/
sudo vim frps.ini

#将如下内容写入frps.ini
[common]
bind_port = 7000		#不一定要7000,看自己,最好大于1024		
  1. 开启腾讯云防火墙对应端口(其他云操作方式类似)

在这里插入图片描述

创建新规则并确定
在这里插入图片描述

  1. 至此,服务器端配置完毕

1.2. 客户端安装frp

  1. 同样下载frp,版本根据客户端系统架构匹配
  2. 解压下载的软件包
  3. 配置frpc.ini,具体内容如下
#进入到解压目录
cd frp_0.38.0_linux_amd64/
sudo vim frpc.ini


#将如下内容写入frpc.ini
[common]
server_addr = {service_ip}		#服务器地址
server_port = 7000				#与服务端对应

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

2.设置自启动——开机自启动

服务端客户端配置流程相同,仅service文件配置不同

2.1. 服务端

#1.此处演示为服务端,即云服务器
sudo vi /lib/systemed/system/frps.service

#2.将如下内容复制至frps.service
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart={your_absolute_path}/frp_0.38.0_linux_amd64/frps -c {your_absolute_path}/frp_0.38.0_linux_amd64/frps.ini

[Install]
WantedBy=multi-user.target


#3.设置服务自启动
sudo systemctl enable frps

#4.启动服务
sudo systemctl start frps

#5.查询服务状态
sudo systemctl status frps
#出现如下信息说明运行正常
● frps.service - fraps service
     Loaded: loaded (/lib/systemd/system/frps.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-03 19:42:24 CST; 4h 5min ago
   Main PID: 2018863 (frps)
      Tasks: 5 (limit: 4608)
     Memory: 8.2M
     CGroup: /system.slice/frps.service
             └─2018863 /root/frp_0.38.0_linux_amd64/frps -c /root/frp_0.38.0_linux_amd64/frps.ini

Dec 03 20:11:56 VM-8-11-ubuntu frps[2018863]: 2021/12/03 20:11:56 [I] [proxy.go:179] [21a94437beb8df97] [ssh] get a user connection [125.216.243.58:5143>
Dec 03 20:11:56 VM-8-11-ubuntu frps[2018863]: 2021/12/03 20:11:56 [I] [proxy.go:179] [21a94437beb8df97] [ssh] get a user connection [125.216.243.58:5143>
Dec 03 20:12:46 VM-8-11-ubuntu frps[2018863]: 2021/12/03 20:12:46 [I] [proxy.go:179] [21a94437beb8df97] [ssh] get a user connection [125.216.243.58:5392>
Dec 03 20:12:49 VM-8-11-ubuntu frps[2018863]: 2021/12/03 20:12:49 [I] [proxy.go:179] [21a94437beb8df97] [ssh] get a user connection [125.216.243.58:5392>
Dec 03 20:52:21 VM-8-11-ubuntu frps[2018863]: 2021/12/03 20:52:21 [I] [proxy.go:179] [21a94437beb8df97] [ssh] get a user connection [112.96.38.177:27031]
Dec 03 20:52:22 VM-8-11-ubuntu frps[2018863]: 2021/12/03 20:52:22 [I] [proxy.go:179] [21a94437beb8df97] [ssh] get a user connection [112.96.38.177:27032]
Dec 03 22:18:55 VM-8-11-ubuntu frps[2018863]: 2021/12/03 22:18:55 [I] [control.go:307] [21a94437beb8df97] control writer is closing
Dec 03 22:18:55 VM-8-11-ubuntu frps[2018863]: 2021/12/03 22:18:55 [I] [proxy.go:88] [21a94437beb8df97] [ssh] proxy closing
Dec 03 22:18:55 VM-8-11-ubuntu frps[2018863]: 2021/12/03 22:18:55 [W] [proxy.go:176] [21a94437beb8df97] [ssh] listener is closed: accept tcp [::]:6000: >
Dec 03 22:18:55 VM-8-11-ubuntu frps[2018863]: 2021/12/03 22:18:55 [I] [control.go:382] [21a94437beb8df97] client exit success

2.2. 客户端

#1.此处演示为客户端,即云服务器
sudo vi /lib/systemed/system/frpc.service

#2.将如下内容复制至frpc.service
[Unit]
Description=frpc service
After=multi-user.target


[Service]
TimeoutStartSec=30
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart={your_absolute_path}/frp_0.38.0_linux_amd64/frpc -c {your_absolute_path}/frp_0.38.0_linux_amd64/frpc.ini

[Install]
WantedBy=multi-user.target

#3.设置服务自启动
sudo systemctl enable frpc

#4.启动服务
sudo systemctl start frpc

#5.查询服务状态
sudo systemctl status frpc
#出现如下信息说明运行正常_同服务端类似

3. 设置守护进程

避免客户端或者服务端的frp服务莫名其妙的挂掉,而导致远程ssh失败

3.1.编写守护进程脚本——仅客户端

#创建守护进程脚本
sudo vim restart_frpc.sh

#将如下内容拷贝至restart_frpc.sh
pid = `ps aux | grep frpc | grep -v grep | awk '{print $2}'`
dat = `date '+%Y-%m-%d %H:%M:%S'` 	#记录当前时间
echo $dat
echo $pid
if [ -n "%pid" ]
then
        {
                echo =============$dat : alive!
        }
else
echo =============$dat : shutdown,restart!
systemctl restart frpc
sleep 10
fi

3.2.定时启动

#配置crontab
crontab -e

#将下列内容填入crontab —— 每两分钟启动一次restart_frpc.sh
*/2 * * * * {your_absolute_path}/restart_frpc.sh  >> {your_absolute_path}/restart_frpc.log

#重启服务
sudo service cron restart

至此,所有配置均已完成,感谢阅览,如有问题请指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【经验】内网穿透教程——配置SSH连接(云服务器+frp)——适用于校园内网,公司内网等 的相关文章

随机推荐