什么叫“内网穿透”?
假如我在局域网中有一台电脑,并且部署了一些web服务希望所有人都能访问它。但这台电脑只有局域网ip,并没有公网ip,那么只有同一局域网内的设备才能找到这台电脑,而其他设备最多只能找到路由器,但却进不了你的局域网。
那么就需要完成内网穿透了。
参考:
https://www.zhihu.com/question/63098230
前置的要求:
1、一台VPS服务器(Linux CentOS 7)
2、XShell(ssh工具)
VPS的配置推荐:1个CPU核心(2.3-3.6GHz v3) 1G运行内存,带宽越大越好
打开XShell,在小黑窗里输入:ssh 你的服务器ip ,ssh的端口默认22,没改过端口的不用填写
样例:
ssh 123.123.123.123
出现这个页面输入登录名称,默认是root :
出现这个页面的时候输入密码,一般在买好的服务器的管理页面里:
完成的效果:
2、在服务器端安装Frps
1.下载frp:
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
*一般服务器默认带有wget,没有wget使用:“apt -y install wget” 安装wget
2.解压压缩包:
tar -zxvf frp_0.37.0_linux_amd64.tar.gz
3.将解压好的文件移动
mv frp_0.37.0_linux_amd64 /usr/local/frp
4.进入刚才移动的文件所在的文件夹
cd /usr/local/frp/
5.修改Frps的配置文件
vim frps.ini
打开后的界面:
*没有上面的配置看下面
*按下i才能开启编辑,Ctrl+ins 才能粘贴(Xshell)
配置:
[common]
#Frp服务的端口:
bind_port = 7000
#Frp服务的验证方式(不用改,默认token就行)
authentication_method = token
#你的Token(密码)
token = abcd1234
#监听的ip(不用改)
dashboard_addr = 0.0.0.0
#管理面板端口(默认7500不用改)
dashboard_port = 7500
#管理面板用户名
dashboard_user = admin
#管理面板密码
dashboard_pwd = admin
#HTTP网页穿透的端口
vhost_http_port = 80
#HTTPS网页穿透的端口
vhost_https_port = 443
根据自己的情况改
改好了直接按下ESC,直接按下Shift+;、w、q 这三个键,退出编辑模式
6.启动Frps
nohup ./frps -c frps.ini & > /dev/null 2> /dev/null &
附:关闭Frps
ps -ef | grep frp
运行效果:
第二个数值就是PID:
关闭Frps:
kill -9 【PID】
示例:
kill -9 6305
3、在客户端(本地)配置Frpc
1.从Github下载Frpc,下载后解压到文件夹里
https://github.com/fatedier/frp/releases
2.配置Frpc.ini
*避免选错,建议把所有frps的文件和exe都删除
可以根据Frpc_full.ini查看更多的配置
案例:
[common]
#服务器的IP
server_addr = 123.123.123
#服务器配置的端口
server_port = 7000
#服务器配置的Token(密码)
token = abcd1233
#这个案例是http网页的
[web]
#映射类型,详见frpc_full.ini
type = http
#需要映射的本地服务ip
local_ip = 192.168.1.6
#需要映射的本地服务端口
local_port = 80
#映射绑定的域名,没有域名可以直接写你的服务器IP
custom_domains = 123.123.123
3.在文件夹里打开cmd窗口启动frpc.exe
4、完成
http(s)连接访问:
http(s)://你的服务器的IP:你设置的vhost_http_port(默认80)或者vhost_https_port(默认443)
能够访问到内网界面,就已经全部完成了,上述内容有不对的欢迎在评论区指出哦~
==========附加功能================
server端配置nginx
.2 nginx反向代理配置
(关于如何安装nginx
就不过多赘述,详细安装教程请参考 Nginx Linux详细安装部署教程)
修改 nginx.conf
文件
# frp的接收http请求的反向代理
server {
listen 80;
server_name *.dev.msh.com dev.msh.com;
location / {
# 7071端口即为frp监听的http端口
proxy_pass http://127.0.0.1:7071;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
# 防止爬虫抓取
if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot")
{
return 403;
}
}
让nginx重新加载配置文件
/usr/local/nginx/sbin/nginx -s reload
————————————————
版权声明:本文为CSDN博主「Pythonwill」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Pythonwill/article/details/125834832