Ubuntu使用frp进行内网穿透

1. frp介绍

frp是一种快速反向代理,可以帮助您将NAT或防火墙后的本地服务器公开到Internet。目前,它支持TCP和UDP,以及HTTP和HTTPS协议,请求可以通过域名转发到内部服务。frp还具有P2P连接模式。

2. frp如何部署

首先根据你的操作系统下载最新的源码包,然后将frpsfrps.ini放到带有公网IP的服务器A中,将frpcfrpc.ini放到局域网中服务器B中(无法从公共互联网连接),最后通过配置两个ini文件分别启动服务器上的frpsfrpc

2.1 通过SSH访问局域网中的计算机

  1. 修改服务器A上的frps.ini文件,设置bind_port连接到frp客户端:
# frps.ini
[common]        
bind_port = 7000
  1. 在服务器A上启动frps
./frps -c ./frps.ini
  1. 在服务器B上,修改frpc.ini配置文件,将frps的公网IP地址填写到server_addr
# frpc.ini
[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_port(在客户机上监听)和remote_port(在服务器上公开)用于进出frp系统的流量,而server_port在frps之间使用。

  1. 在服务器B上启动frpc
./frpc -c ./frpc.ini
  1. 从另一台机器,通过SSH访问服务器B(假定用户名是ubuntu)
ssh -oPort=6000 ubuntu@x.x.x.x
  1. frpsfrpc设置成开机自启动
    frps为例,首先通过下面命令行配置frps.service文件
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

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

[Install]
WantedBy=multi-user.target

然后启动frps,命令行如下
sudo systemctl start frps
再打开开机自启动,命令如下
sudo systemctl enable frps

  • 如果要重启应用,用该命令行sudo systemctl restart frps
  • 如果要停止应用,用该命令行sudo systemctl stop frps
  • 如果查看运行状态,用该命令行sudo systemctl status frps
    对于frpc的开机自启动设置,过程基本一样。

3. frp其他功能

1 通过自定义域访问LAN中的web服务
2 转发DNS查询请求
3 前向Unix域套接字
4 公开一个简单的HTTP文件服务器
5 为本地HTTP服务启用HTTPS
6 私下公开服务
7 P2P模式

原文地址:https://www.cnblogs.com/zhongzhaoxie/p/13213290.html