admin管理员组

文章数量:1338324

绕过网络认证,实现免验证上网原理与实战

正常情况下,当我们连上酒店或者其他需要验证才可以使用的网络后,虽然上不了网,但是我们的计算机却分配到了IP地址(不分配IP地址web认证就实现不了),此时若我们进行一些上网的操作,那么计算机的数据包将从TCP443端口上发出,校园网、酒店等网关就会拦截从这个端口上发出的数据包。同理从其它端口上发出的数据包也会遭到拦截。

基于此,我们有三种方式绕过网络认证,实现免验证上网。

方法一:搭建DNS隧道 搭建方法

使用UDP53端口(UDP53端口上运行的协议是DNS协议(域名解析协议)),利用 DNS 查询流量来封装 TCP 流量 , 达到绕过防火墙的目的。

连接 未通过账号验证 不通 分配IP 53/67/68 端口转发 本机 校园网 TCP443等端口 阻塞 互联网 DNS协议畅通

堵塞 但 分配IP 安装dns2tcpc 连接 安装配置 安装配置 启动 启动 Internet 电脑-客户端 开启 隧道 公网VPS dns2tcp socks代理

方法二:搭建vpn服务器

数据转发+开放网络端口 配置 安装配置 树莓派 VPN服务器 VPN帐号 pptpd 1.连接 2.堵塞 但 分配IP 4. 3.VPN帐号连接 4.账号验证通过--网络畅通 电脑-客户端 Internet VPN服务器 堵塞 但 分配IP 安装配置 L2TP OpenVPN 连接 安装配置 启动 Internet 电脑-客户端 SE-VPN Server Manager VPN 隧道 公网VPS SoftEther 连接 数据转发+开放网络端口 配置 安装配置 配置完成后连接 堵塞 但 分配IP 客户端 Internet 服务端VPS Open VPN 服务端和客户端 证书与私钥 隧道

方法三:使用FRP代理 搭建方法

正向代理隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问http://www.google时被墙了,于是你可以在国外搭建一台代理服务器,让代理帮我去请求 google,代理把请求返回的相应结构再返回给我。

当多个客户端访问服务器时服务器不知道真正访问自己的客户端是那一台。正向代理中,proxy和client同属一个LAN,对server透明。

我们可以利用正向代理的原理,通过 FRP 客户端代理其它内网机器访问外网。

该方法的应用场景是同一局域网下,机器A能够正常上网,机器B能够连入局域网但是没有通过上网验证。

即:

Client = 机器B(连入 机器A 内网,设置代理地址)
跳板 = 机器A(需要在服务器上搭建FRP客户端)
proxy = 公网服务器(需要在服务器上搭建FRP服务端)
Server = 外网

FRP FRP 内网环境 服务端VPS Internet 客户端 如树莓派 内网机器
(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 = 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设置为开机启动。

(2)客户端部署(以树莓派为例)

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 即可
(3)内网主机

将需要通过这个代理访问外网的内部机器的代理地址设置为:

服务器IP:9000

这样就可以通过 FRP 客户端机器的网络访问互联网了。

参考:
1: https://blog.csdn/deng_xj/article/details/88821719
2: https://blog.csdn/deng_xj/article/details/88834124
3: https://blog.csdn/deng_xj/article/details/88879755
4: https://blog.csdn/deng_xj/article/details/88834654
5: https://dengxj.blog.csdn/article/details/88952420

本文标签: 实战原理网络