网络知识之frp内网穿透

不要使用所谓的一键安装script,frp本身很简单,别把简单的事情搞复杂了。

80和443端口被封,无法发布个人web服务,或者需要访问公司内网的电脑,或者公司内网电脑突破上网限制,都可以用内网穿透的方法来实现。

问题:是不是frp也可以用来翻墙?
内网穿透软件的选择:
内网穿透工具,可以用ngrok或者frp,因为ngrok 2.0已经商业化,所以本文只涉及 frp。

实践一、手工安装frps与frpc,实现个人web发布

1、VPS端配置frps服务器(frps是server端,frpc是客户端,官网官网frp下载地址

wget -c https://github.com/fatedier/frp/releases/download/v0.15.0/frp_0.15.0_linux_386.tar.gz

tar -zxvf frp_0.15.0_linux_386.tar.gz

cd frp_0.15.0_linux_386

firewall-cmd –zone=public –add-port=7000/tcp –permanent

firewall-cmd –zone=public –add-port=8080/tcp –permanent

firewall-cmd –reload

systemctl restart firewalld.service

vi frps.ini
frps.ini内容:
[common]

bind_port = 7000

vhost_http_port = 8080
启动frps:
./frps -c ./frps.ini
2、本地Windows 10 配置frpc:
下载frpc:frp_0.15.0_windows_386.zip,修改frpc.ini如下:
[common]

server_addr = www.zhangqihui.cc

server_port = 7000

[web]

type = http

local_port = 8000

custom_domains = www.zhangqihui.cc
修改Windows 10 电脑的hosts文件
127.0.0.1 www.zhangqihui.cc
本地启动8000端口的网页:
python -m http.server
通过鼠标右键菜单打开powershell,启动frpc:
./frpc -c ./frpc.ini
问题:
1、浏览器返回找不到页面(The page you visit no found),服务器端返回错误信息(http:proxy error:no such domain)为啥?

2、凭啥会连接上frps,没有密码保护吗?

进阶1:

dashboard(状态以及代理统计信息),配置frps.ini:

[common]

dashboard_port = 7501

dashboard_user = {username} #缺省为用户名admin

dashboard_pwd = {password} #缺省密码是admin
别忘了提前打开相应的防火墙端口:
firewall-cmd –zone=public –add-port=7501/tcp –permanent

firewall-cmd –reload
通过浏览器访问:http://zhangqihui.cc:7501就可以看到服务器端信息了

进阶2:身份验证

运行frps时,会提示安全提示PrevilegeMode Enabled。PrevilegeMode是特权模式。新版本的frp,proxy配置全放在客户端了,,服务端就不再配置诸如 tcp、http 等的隧道,只需要启动frps 服务即可。

[common]

privilege_token = {privilege_token} #服务端与客户端common的token必须一致,则身份验证通过,
注:如果只在frps设置token,frpc没有设置,会提示authorization failed

实践二、通过软件中心,在小宝梅林固件路由器上安装“frps穿透服务器”

1)安装frps穿透服务器,具体参数如下

Dashboard port 6443 #

Dashboard User admin #

Dashboard Pass #

Bind port #

Privilege Token #

vhost http port #

vhost https port #

TCP 多路复用 #

日志记录 #

日志等级 #

日志记录天数 #

max pool count #

定时注册服务(0为关闭) #
2)打开路由器6443端口,实现外网访问(失败,为啥?)

iptables -I INPUT -p tcp –dport 6443 -j ACCEPT #添加6443端口,注意dport前是两条横!

iptables -I INPUT -p udp –dport 6443 -j ACCEPT

iptables -L | grep 6443

_ ACCEPT udp — anywhere anywhere udp dpt:6443_

_ ACCEPT tcp — anywhere anywhere tcp dpt:6443_

实践三、使用 clangcn 的 script,在VPS上安装frps #不建议,因为搞不清script到底做了啥

参考 :
IT男的VPS系列教程 篇一:内网穿透(Frp)-拯救没有公网IP的你

[frpc穿透] 【填坑完毕】内网穿透利器Frp一键安装脚本及设置教程

步骤:

1、在个人VPS通过clangcn 的 script 安装frp客户端frps

2、修改frps配置文件

3、配置客户端
1、登录 vultr (CentOS系统),安装frps

yum update #apt-get是Ubuntu系统用的,在CentOS下不适用

wget –no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

============== Check your input ==============
You Server IP : 45.63.21.165
Bind port : 5443
kcp support : true
vhost http port : 7080
vhost https port : 7443
Dashboard port : 6443
Dashboard user : admin
Dashboard password : jaguaR72f
Privilege token : wkI2djMIT71pUgih
tcp_mux : true
Max Pool count : 50
Log level : info
Log max days : 3

Log file : enable

配置VP防火墙端口,保证以上端口都是打开的,打开浏览器,输入“http://45.63.21.165:6443”,输入以上用户名与密码,就可以看到自己的frps状态了!

2、修改frps配置文件

查询frps路径

which frps # /usr/bin/frps 指向 /etc/init.d/frps ,查看这个文件,发现frps以及配置文件在/usr/local/frps目录下
3、配置客户端,实现内网突破网管限制上网

4、卸载frps

./install-frps.sh uninstall
问题:
如何改变端口

如何安装客户端,实现公司电脑上网无限制

如何配置发布手机上的web服务?
参考:
使用frp实现内网穿透

VPS+frp 配置(菜鸟版)

在一个超小的vps上搭建frp内网穿透

使用 Frp 对内网黑群晖进行穿透型映射