绕过网络认证,实现免验证上网原理与实战
正常情况下,当我们连上酒店或者其他需要验证才可以使用的网络后,虽然上不了网,但是我们的计算机却分配到了IP地址(不分配IP地址web认证就实现不了),此时若我们进行一些上网的操作,那么计算机的数据包将从TCP443端口上发出,校园网、酒店等网关就会拦截从这个端口上发出的数据包。同理从其它端口上发出的数据包也会遭到拦截。
基于此,我们有三种方式绕过网络认证,实现免验证上网。
方法一:搭建DNS隧道 搭建方法
使用UDP53端口(UDP53端口上运行的协议是DNS协议(域名解析协议)),利用 DNS 查询流量来封装 TCP 流量 , 达到绕过防火墙的目的。
方法二:搭建vpn服务器
方法三:使用FRP代理 搭建方法
正向代理隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问http://www.google.com时被墙了,于是你可以在国外搭建一台代理服务器,让代理帮我去请求 google,代理把请求返回的相应结构再返回给我。
当多个客户端访问服务器时服务器不知道真正访问自己的客户端是那一台。正向代理中,proxy和client同属一个LAN,对server透明。
我们可以利用正向代理的原理,通过 FRP 客户端代理其它内网机器访问外网。
该方法的应用场景是同一局域网下,机器A能够正常上网,机器B能够连入局域网但是没有通过上网验证。
即:
Client = 机器B(连入 机器A 内网,设置代理地址)
跳板 = 机器A(需要在服务器上搭建FRP客户端)
proxy = 公网服务器(需要在服务器上搭建FRP服务端)
Server = 外网
(1)服务端部署(Linux VPS)
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 = # 特权模式密钥,需与客户端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
(2)客户端部署(以树莓派为例)
[common] server_addr = your_server_ip #VPS服务器IP server_port = 7000 #端口,与服务端bind_port一致 privilege_token = #自定义值,需和服务端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 即可
(3)内网主机
将需要通过这个代理访问外网的内部机器的代理地址设置为:
服务器IP:9000
这样就可以通过 FRP 客户端机器的网络访问互联网了。
参考:
1: https://blog.csdn.net/deng_xj/article/details/
2: https://blog.csdn.net/deng_xj/article/details/
3: https://blog.csdn.net/deng_xj/article/details/
4: https://blog.csdn.net/deng_xj/article/details/
5: https://dengxj.blog.csdn.net/article/details/
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/101441.html