frp内网穿透

2023-05-13 06:31:51 浏览数 (1)

frp内网穿透

此教程可用于配置内网Linux服务器,这样就可以不在同一个局域网内也能远程访问到服务器。

一、公网IP

买一个云服务器(腾讯云或者阿里云均可)。会分配一个公网ip。

二、frp工具的使用

在云服务器和内网机器下载对应的安装包:

代码语言:javascript复制
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

解压文件 tar -zxvf frp_0.34.3_linux_amd64.tar.gz

在云服务器上部署 frps,修改 frps.ini 文件:

代码语言:javascript复制
[common]
bind_port = 7000

在我们的内网机器上部署 frpc,修改 frpc.ini 文件,x.x.x.x修改为 frps 所在云服务器的公网 IP:

代码语言:javascript复制
[common]
server_addr = x.x.x.x
server_port = 7000
​
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

local_iplocal_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

注意:云服务器需要开启对应端口!

分别启动 frps 和 frpc。在云服务器上先通过 ./frps -c ./frps.ini 启动服务端,在内网机器上通过 ./frpc -c ./frpc.ini 启动客户端。

  • 通过 SSH 访问内网机器,假设用户名为 test: ssh -oPort=6000 test@x.x.x.x
  • frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口。

问题:

一、安装screen

yum install screen

安装成功后,输入screen会切换到另一个窗口,可以通过ctrl a d切换回原来的命令行界面 创建screen会话 重新读取screen会话

通过下面命令查询正在运行中的screen会话列表信息。

screen -ls

1、通过screen名字读取。

screen -r screen名字或者会话ID

如果存在多个同名名的会在会话名之前有会话ID 会话名称,如4078.test;

可以通过screen -r 4078.test或者screen -r 4078获取指定会话

2、关闭screen会话

若不再需要当前的screen会话,可以在当前的screen会话中执行 exit,提示[screen is terminating]表示已经成功关闭screen会话(不会保留在内存中),如果需要,请重建。 3、screen的快捷键

如之前讲到的Ctrl a d 可以暂时离开当前的screen会话,同时screen还提供其它的快捷键。

Ctrl a c :在当前screen会话中创建一个子会话

Ctrl a p :上一个子会话

Ctrl a n :下一个子会话

二、ubuntu如何开启22端口支持ssh访问

1.查看本机IP

ifconfig

执行后如果提示服务不存在,则需要下载该工具sudo apt install net-tools

2查看端口22是否被占用netstat -nltplgrep 22

-n不以进程的服务名称,以编号port number显示-t列出tcp网络封包的信息

-l列出目前正在网络监听listen服务-p列出该网络服务的进程

如果发现没有22端口进程,则执行如下命令:sudo apt-get install openssh-server

sudo apt-get install ufw

sudo ufw enable

sudo ufw allow 22用xshell连接是否成功

三、frp服务自启动

进入frp目录,复制文件

cp frps /usr/local/bin/frps

mkdir /etc/frp

cp frps.ini /etc/frp/frps.ini

创建frps.service服务:vim /lib/systemd/system/frps.service

代码语言:javascript复制
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target
​
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
Restart=always
RestartSec=1min
ExecStop=/usr/bin/killall frps
​
[Install]
WantedBy=multi-user.target

设置开机自启动:systemctl enable frps

开启服务:systemctl start frps

查看状态:systemctl status frps

active(running)则表示启动成功

四、多个ssh配置

在另一台机器进行下载frp,只需要修改frpc.ini文件,修改格式如下:

代码语言:javascript复制
[common]
server_addr = x.x.x.x
server_port = 7000 
​
[ssh001] # 不能重复
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001 # 不能重复

frpc命令启动即可。

0 人点赞