赞
踩
正常情况下,当我们连上酒店或者其他需要验证才可以使用的网络后,虽然上不了网,但是我们的计算机却分配到了IP地址(不分配IP地址web认证就实现不了),此时若我们进行一些上网的操作,那么计算机的数据包将从TCP443端口上发出,校园网、酒店等网关就会拦截从这个端口上发出的数据包。同理从其它端口上发出的数据包也会遭到拦截。
基于此,我们有三种方式绕过网络认证,实现免验证上网。
使用UDP53端口(UDP53端口上运行的协议是DNS协议(域名解析协议)),利用 DNS 查询流量来封装 TCP 流量 , 达到绕过防火墙的目的。
正向代理隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问http://www.google.com时被墙了,于是你可以在国外搭建一台代理服务器,让代理帮我去请求 google,代理把请求返回的相应结构再返回给我。
当多个客户端访问服务器时服务器不知道真正访问自己的客户端是那一台。正向代理中,proxy和client同属一个LAN,对server透明。
我们可以利用正向代理的原理,通过 FRP 客户端代理其它内网机器访问外网。
该方法的应用场景是同一局域网下,机器A能够正常上网,机器B能够连入局域网但是没有通过上网验证。
即:
Client = 机器B(连入 机器A 内网,设置代理地址)
跳板 = 机器A(需要在服务器上搭建FRP客户端)
proxy = 公网服务器(需要在服务器上搭建FRP服务端)
Server = 外网
sudo apt-get update
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz
tar -zxvf frp_0.17.0_linux_amd64.tar.gz #解压缩:tar xvf 文件名
cd frp_0.17.0_linux_amd64 #进入解压目录
#修改frps.ini文件
sudo vim ./frps.ini
添加以下内容:
[common]
bind_addr = 0.0.0.0
bind_port = 7000 # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致
privilege_token = 123456 # 特权模式密钥,需与客户端frpc.ini一致
vhost_http_port = 8080 # http服务端口,开启后服务端完成通过域名访问部署于内网的 Web 服务部署,这里将 HTTP 访问端口设为 8080
vhost_https_port = 443 # https服务端口
dashboard_port = 7500 # 控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面,用户名密码默认都为 admin。
#后台保持启动
nohup ./frps -c ./frps.ini &
设置为开机自动启动
sudo vim /etc/systemd/system/frps.service
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/frp/frp_0.16.0_linux_386/frps -c /usr/frp/frp_0.16.0_linux_386/frps.ini
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
注意ExecStart中要配置成自己的路径.
然后使用systemctl start frps即可启动frps, 用systemctl enable frps即可将frps设置为开机启动。
FRP 客户端内置了 http_proxy 和 socks5 插件
通过这两个插件可以使其它内网机器通过 FPR 客户端的的网络访问互联网。
[common]
server_addr = your_server_ip #VPS服务器IP
server_port = 7000 #端口,与服务端bind_port一致
privilege_token = 123456 #自定义值,需和服务端frps.ini的一致
login_fail_exit = false #失败时自动重连
admin_addr = 127.0.0.1 #开启后可通过热加载方式进行 FRP 客户端配置变更
admin_port = 7400 #可以通过 frpc reload 命令来动态加载配置文件,通过 frpc status -c ./frpc.ini 命令在 FRP 客户端查看当前代理状态信息。
[http_proxy]
type = tcp
remote_port = 9000
plugin = http_proxy #如需启用 Socks5 代理,只需将 plugin 的值更换为 socks5 即可
将需要通过这个代理访问外网的内部机器的代理地址设置为:
服务器IP:9000
这样就可以通过 FRP 客户端机器的网络访问互联网了。
参考:
1: https://blog.csdn.net/deng_xj/article/details/88821719
2: https://blog.csdn.net/deng_xj/article/details/88834124
3: https://blog.csdn.net/deng_xj/article/details/88879755
4: https://blog.csdn.net/deng_xj/article/details/88834654
5: https://dengxj.blog.csdn.net/article/details/88952420
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。