frp实现内网穿透

因为有在外面访问家里 NAS 的需求,群晖自带的动态域名解析访问又太慢。所以需要用内网穿透技术来实现通过其他公网 IP 来访问家里的 NAS 设备的需求。

frp的github地址 点击这里
frp的下载地址 点击这里

1 客户端部署

##下载对应版本的Frp
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
##解压
tar -xzvf frp_0.21.0_linux_amd64.tar.gz
##进入目录
cd frp_0.21.0_linux_amd64
##删除服务端相关的文件
rm -rf frps*

编辑客户端的配置文件frpc.ini

[common]
server_addr = x.x.x.x   //服务端的IP地址
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[nas]
type = http
local_ip = 192.168.0.100   //nas的局域网ip
local_port = 5000
custom_domains = nas.example.com

运行客户端frp

nohup ./frpc -c ./frpc.ini > info.log 2>&1 & echo $! > tpid

2 服务端部署

##下载对应版本的Frp
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
##解压
tar -xzvf frp_0.21.0_linux_amd64.tar.gz
##进入目录
cd frp_0.21.0_linux_amd64
##删除服务端相关的文件
rm -rf frpc*

编辑服务端配置文件frps.ini

[common]
dashboard_port = 7500      //Dashboard端口
dashboard_user = admin    //账号
dashboard_pwd = admin    //密码
bind_port = 7000
vhost_http_port = 8080
server_addr = x.x.x.x          //服务器id

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

运行服务端frp

nohup ./frps -c ./frps.ini > info.log 2>&1 & echo $! > tpid

3 查看效果&&隐藏端口号

访问http://nas.example.com:8080

端口号访问

这时候我们使用网址访问的时候是会带端口号的。看着很烦。这里使用nginx转发的方式可以去掉8080。nginx添加conf如下:

server
{
        listen 80;
        server_name nas.example.com ;
        location / {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://127.0.0.1:8080;
        }
}
不带端口号访问

成功!!!

你可能感兴趣的:(frp实现内网穿透)