想要外网访问内网的资源,如果有一台带有公网IP的服务器,可以使用frp进行中转实现。frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
(需要防火墙开启相关的端口。相关端口没开启,访问就会失败。)
frp中转
本文的环境,内网Linux服务器与内网windows服务器可以二选一,或者都选:
外网服务器:centos7 64位
外网服务器IP:w.w.w.w(我的ip)
内网windows服务器:windows server 2008 64位
内网Linux服务器:centos7 64位
frp:https://github.com/fatedier/frp/releases
一、外网服务器(必需)
1、服务器安装frp服务端:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar xf frp_0.33.0_linux_amd64.tar.gz
mv frp_0.33.0_linux_amd64 /usr/local
cd /usr/local/frp_0.33.0_linux_amd64
rm -f frpc*
如果下载速度慢,可以直接下载对应点文件后,再上传到服务器。
2、修改服务端配置frps.ini中的端口:
# frps.ini
[common]
bind_port = 7000
authentication_method = token
# 认证密码,需要与客户端一致
token = 12345678
3、配置frp启动服务:
sudo vi /etc/systemd/system/frps.service
填入下面的内容:
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp_0.33.0_linux_amd64/frps -c /usr/local/frp_0.33.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
3、配置frp启动服务:
systemctl enable frps
systemctl start frps
二、内网windows服务器(二选一)
1、内网windows服务器安装frp客户端:
下载frp_0.33.0_windows_amd64.zip,解压到路径没有空格和中文的目录即可。
2、修改客户端配置frpc.ini中的端口:
# frpc.ini
[common]
# 对应外网服务器的ip和端口
server_addr = x.x.x.x
server_port = 7000
authentication_method = token
# 认证密码,需要与服务端一致
token = 12345678
[web]
type = tcp
local_ip = 127.0.0.1
# 本机的服务端口
local_port = 80
# 让外网服务器开启的端口(需要防火墙放行)
remote_port = 6000
3、启动frp客户端:
在cmd切换到frp的目录,执行下面的命令启动(不能关闭cmd):
frpc -c frpc.ini
三、内网linux服务器(二选一)
1、内网linux服务器安装frp客户端:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar xf frp_0.33.0_linux_amd64.tar.gz
mv frp_0.33.0_linux_amd64 /usr/local
cd /usr/local/frp_0.33.0_linux_amd64
rm -f frps*
如果下载速度慢,可以直接下载对应点文件后,再上传到服务器。
2、修改服务端配置frpc.ini中的端口:
# frpc.ini
[common]
# 对应外网服务器的ip和端口
server_addr = x.x.x.x
server_port = 7000
authentication_method = token
# 认证密码,需要与服务端一致
token = 12345678
[web]
type = tcp
local_ip = 127.0.0.1
# 本机的服务端口
local_port = 80
# 让外网服务器开启的端口(需要防火墙放行)
remote_port = 6001
3、配置frpc启动服务:
sudo vi /etc/systemd/system/frpc.service
填入下面的内容:
[Unit]
Description=frpc daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp_0.33.0_linux_amd64/frpc -c /usr/local/frp_0.33.0_linux_amd64/frpc.ini
[Install]
WantedBy=multi-user.target
3、配置frp启动服务:
systemctl enable frpc
systemctl start frpc
至此,
使用 http://w.w.w.w(我的ip):6000/ 就能访问内网windows服务器了,
使用 http://w.w.w.w(我的ip):6001/ 就能访问内网linux服务器了。
参考:
https://blog.csdn.net/weixin_44567104/article/details/103277641