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

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

配置一览:

服务端: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

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值