itgoyo / 500Days-Of-Github

⭐ 瞎JB折腾Mac/Linux/Windows过程中遇到的所有问题和解决方式 ⭐
https://itgoyo.github.io/500Days-Of-Github
138 stars 13 forks source link

Frp内网穿透教程 #264

Open itgoyo opened 2 years ago

itgoyo commented 2 years ago

https://github.com/fatedier/frp/ 从 Release 页面下载安装包 本次是使用 frp_0.20.0_linux_amd64.tar.gz 版本 通过 SSH 访问公司内网服务器 1,将 frp_0.20.0_linux_amd64.tar.gz 解开后的 frps 及 frps.ini 放到具有公网 IP 的机器上。

frps.ini

[common] bind_addr=0.0.0.0 //本地IP bind_port = 7000 //绑定本地服务端口

start frps

./frps -c ./frps.ini & 指定配置文件后台运行启动

检查

ps -elf |grep frps netstat -antulp | grep 7000

2,将 frp_0.20.0_linux_amd64.tar.gz 解开后的 frpc 及 frpc.ini 放到处于内网环境的机器上。 修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;

frpc.ini


[common]
server_addr = x.x.x.x     \\要跟server端地址保持一致
server_port = 7000         \\跟server端口保持一致

[ssh]
type = tcp             \\使用的协议
local_ip = 127.0.0.1
local_port = 22      \\本地ssh的服务端口
remote_port = 6000         \\对外端口访问公网的此端口就相当于访问client的22端口

启动

./frpc -c ./frpc.ini &   \\指定客户端配置文件后台运行

3, 通过 ssh 访问内网服务器,假设用户名为 test

登录后复制

ssh -oPort=6000 test@x.x.x.x

服务器端自启动

# 需要先 cd 到 frp 解压目录.

# 复制文件
cp frps /usr/local/bin/frps
mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini

# 编写 frp service 文件,以 ubuntu 为例
vim /usr/lib/systemd/system/frps.service (有时候需要手动创建system文件夹)
# 内容如下
[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

# 启动 frp 并设置开机启动
systemctl enable frps
systemctl start frps
systemctl status frps

# 部分服务器上,可能需要加 .service 后缀来操作,即:
systemctl enable frps.service
systemctl start frps.service
systemctl status frps.service

客户端自启动

# 需要先 cd frp 解压目录.

# 复制文件
cp frpc /usr/local/bin/frpc
mkdir /etc/frp
cp frpc.ini /etc/frp/frpc.ini

# 编写 frp service 文件,以 centos7 为例,适用于 debian
vim /usr/lib/systemd/system/frpc.service
# 内容如下
[Unit]
Description=frpc
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

# 启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc

# 部分服务器上,可以需要加 .service 后缀来操作,即:
systemctl enable frpc.service
systemctl start frpc.service
systemctl status frpc.service
itgoyo commented 2 years ago

之前服务器一直ftps start启动不了,然后自己心血来潮的使用了sudo ftps start,结果真的成功了。

家里的服务器直接sudo frps restart,这样子就可以了

itgoyo commented 2 years ago
[common]
server_addr = 42.193.xxx.xxx
#服务器地址
server_port = 5443
#服务器端口
token = 40L8T57Wvnxxxxxxxx
#token(理解为密码)

#FRPC服务端一键脚本地址:https://github.com/MvsCode/frps-onekey
#FRPC客户端docker地址:https://registry.hub.docker.com/r/stilleshan/frpc/
#其他设置参考此链接 https://gofrp.org/docs/features/

# tcp & udp 设置参考
[NAS_tcp_name]
type = tcp
#http协议也可以是https
local_ip = 192.168.123.99
local_port = 5000
#设备的内网端口
remote_port = 5000
#设备的外网端口
; use_encryption = true #加密
; use_compression = true #压缩

[NAS_ssh_name]
type = tcp
local_ip = 192.168.123.99
local_port = 22
remote_port = 6000

[NAS_portainer_name]
type = tcp
local_ip = 192.168.123.99
local_port = 9000
remote_port = 9005

[udp_name]
type = udp
local_ip = 192.168.123.99
local_port = 995
remote_port = 995
use_encryption = true #加密
use_compression = true #压缩