zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【frp内网穿透教程】

2023-04-18 14:24:59 时间

在这里插入图片描述

1 前言

在不同局域网实现跨网访问。
现在有电脑A,B,C
A位于192.168.3.* 局域网下,C位于192.168.3.* 局域网下,现需要A远程访问C。
本博客中介绍的方案是:用阿里云服务器作为服务端,即桥梁B,实现A与C的通信。这里的客户端是C。

2 下载链接

2.1 分别在服务器端和客户端下载frp(ubuntu系统)

打开终端执行下面命令,下载:

wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

解压:

tar -xzvf frp_0.36.2_linux_amd64.tar.gz

2.2 压缩包说明

每个压缩包都包含以下文件及一个systemd文件夹:
- frpc —— 客户端可执行二进制文件
- frpc_full.ini —— 包含全部配置项的客户端配置文件
- frpc.ini —— 客户端使用的配置文件,包含最简配置
- frps —— 服务端可执行二进制文件
- frps_full.ini —— 包含全部配置项的服务端配置文件
- frps.ini —— 服务端使用的配置文件,包含最简配置
- systemd —— 文件夹,用于将frpc和frps添加为服务的配置,linux下使用systemd作为守护程序、mac os使用launchd作为守护程序

3 配置

3.1 服务器端配置

3.1.1 打开frps.ini

sudo gedit frps.ini

3.1.2 编辑内容

[common]
bind_port = 7000 #bind_port端口为frp服务端和客户端连接通信的端口,默认为7000。
vhost_http_port = 8080 #vhost_http_port监听的端口不能被占用,否则会导致frps不能启动,端口可根据实际需要修改。
token = my_token_name #与服务器中的保持一致

3.1.3 启动frps程序

sudo ./frps -c ./frps.ini

3.2 客户端配置

3.2.1 打开frpc.ini

sudo gedit frpc.ini

3.2.2 编辑内容

[common]
server_addr = 36.152.44.96 #为服务器的ip地址,可通过ping或者nslookup域名看到
server_port = 7000
token = my_token_name #与服务器中的保持一致

[lab_ssh] #这里的名字可以随意命名,但不能重复
type = tcp
local_ip = 192.168.1.150
local_port = 22
remote_port = 5111
[lab_mstc]
type = tcp
local_ip = 192.168.1.150
local_port = 3389
remote_port = 5211
[lab_ftp1]
type = tcp
local_ip = 192.168.1.150
local_port = 20
remote_port = 5311
[lab_ftp2]
type = tcp
local_ip = 192.168.1.150
local_port = 21
remote_port = 5312

3.2.3 启动frpc程序

sudo ./frpc -c ./frpc.ini

4 开机自启

4.1 先创建frpc.sh文件

在/home/host_name/frp/目录下,创建frpc.sh文件

#!/bin/sh
sleep 20s #开机20秒后启动脚本
sudo /home/host_name/frp/frpc -c /home/host_name/frp/frpc.ini

4.2 systemctl管理开机自启动

sudo vim /etc/systemd/system/frpc.service
[Unit]
Description=start_frpc

[Service]
ExecStart=/home/host_name/frp/frpc.sh
ExecReload=/home/host_name/frp/frpc.sh

[Install]
WantedBy=multi-user.target

4.3 开启frpc.service服务

# 启动frp
sudo systemctl start frpc
# 开机自启动
sudo systemctl enable frpc
# 重启
sudo systemctl restart frpc
# 停止
sudo systemctl stop frpc
# 查看日志
sudo systemctl status frpc