GFW通过干扰DNS解析,将用户访问特定域名的请求重定向到错误的IP地址。当用户尝试访问被封锁的网站时,GFW会返回一个错误的IP地址,从而阻断实际访问。
GFW可以在出境的网关上添加伪造的路由规则,直接屏蔽特定的IP地址,使用户无法访问特定网站或服务器。这种方法高效且直接,常用于封锁被认为传播敏感内容的服务器。
GFW实时监控网络内容。一旦检测到预设的敏感关键词,相关内容或连接可能被中断。对于明文协议(如HTTP、POP3、SMTP、FTP),GFW会检测其中的关键字,如果发现敏感词汇,就会给连接的双方发送TCP RST的重置命令,终止通信。
GFW积累了大量的数据,并可能利用人工智能和大数据分析技术,对网络流量进行深入分析,识别异常或敏感行为,从而采取相应的封锁措施。
如果您希望搭建一个功能类似的系统,可以参考以下步骤,但请确保仅用于研究或内部网络管理:
export CGO_ENABLED=0
go build
export OPENGFW_LOG_LEVEL=debug
./OpenGFW -c config.yaml rules.yaml
其中 config.yaml 是配置文件,rules.yaml 是规则文件。
OpenGFW 在 OpenWrt 23.05 上测试可用(其他版本应该也可以,暂时未经验证)。
opkg install nftables kmod-nft-queue kmod-nf-conntrack-netlink
样例配置:
io:
queueSize: 1024
queueNum: 100
table: opengfw
connMarkAccept: 1001
connMarkDrop: 1002
rcvBuf: 4194304
sndBuf: 4194304
local: true
rst: false
workers:
count: 4
queueSize: 64
tcpMaxBufferedPagesTotal: 65536
tcpMaxBufferedPagesPerConn: 16
tcpTimeout: 10m
udpMaxStreams: 4096
# 指定的 geoip/geosite 档案路径
# 如果未设置,将自动从 https://github.com/Loyalsoldier/v2ray-rules-dat 下载
# ruleset:
# geoip: geoip.dat
# geosite: geosite.dat
replay:
realtime: false
请确保所有操作符合法律许可范围内。自建“GFW”系统仅限用于企业内部网络管理、学术研究或技术学习。
在分析网络流量时,注意保护用户隐私,不得存储或泄露敏感数据。
如果用于企业环境,应向用户告知过滤和监控的存在,并明确用途。
OpenGFW的核心价值在于帮助技术爱好者和研究人员理解网络内容过滤和管理的技术。然而,模仿GFW的行为需谨慎而为,避免侵犯他人权益或违反法律规定。