在著名论坛摘了过移动墙代码已配置

原文存在代码中有空格情况,以下为修改版:

1. 将代码保存为 geneva.py

首先,打开终端并执行以下命令:

cat <<'EOF' >geneva.py #!/usr/bin/env python3 import os import signal from scapy.all import * from netfilterqueue import NetfilterQueue import argparse window_size = 17 def modify_window(pkt): try: ip = IP(pkt.get_payload()) if ip.haslayer(TCP) and ip[TCP].flags == "SA": ip[TCP].window = window_size del ip[IP].chksum del ip[TCP].chksum pkt.set_payload(bytes(ip)) elif ip.haslayer(TCP) and ip[TCP].flags == "FA": ip[TCP].window = window_size del ip[IP].chksum del ip[TCP].chksum pkt.set_payload(bytes(ip)) elif ip.haslayer(TCP) and ip[TCP].flags == "PA": ip[TCP].window = window_size del ip[IP].chksum del ip[TCP].chksum pkt.set_payload(bytes(ip)) elif ip.haslayer(TCP) and ip[TCP].flags == "A": ip[TCP].window = window_size del ip[IP].chksum del ip[TCP].chksum pkt.set_payload(bytes(ip)) except: pass pkt.accept() def parsearg(): global window_size parser = argparse.ArgumentParser(description='Description of your program') parser.add_argument('-q', '--queue', type=int, help='iptables Queue Num') parser.add_argument('-w', '--window_size', type=int, help='Tcp Window Size') args = parser.parse_args() if args.queue is None or args.window_size is None: exit(1) window_size = args.window_size return args.queue def main(): queue_num = parsearg() nfqueue = NetfilterQueue() nfqueue.bind(queue_num, modify_window) try: print("Starting netfilter_queue process...") nfqueue.run() except KeyboardInterrupt: pass if __name__ == "__main__": #sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) signal.signal(signal.SIGINT, lambda signal, frame: sys.exit(0)) main() EOF

2. 安装依赖项

CentOS 安装依赖

sudo yum install -y python3 python3-devel gcc gcc-c++ git libnetfilter* libffi-devel pip3 install --upgrade pip pip3 install scapy netfilterqueue

Ubuntu 安装依赖

sudo apt-get update sudo apt-get install -y build-essential python3-dev libnetfilter-queue-dev libffi-dev libssl-dev iptables python3-pip pip3 install --upgrade pip pip3 install scapy netfilterqueue

3. 执行程序

启动程序

nohup python3 geneva.py -q 100 -w 17 & nohup python3 geneva.py -q 101 -w 4 &

配置 iptables 规则

iptables -I OUTPUT -p tcp --sport 80 --tcp-flags SYN,RST,ACK,FIN,PSH SYN,ACK -j NFQUEUE --queue-num 100 iptables -I OUTPUT -p tcp --sport 443 --tcp-flags SYN,RST,ACK,FIN,PSH SYN,ACK -j NFQUEUE --queue-num 101

4. 检查是否运行成功

ps -ef | grep geneva

如果命令输出中包含 geneva.py 的进程信息,则表示程序已成功启动。

待验证是否成功,必须开启强制https

本站资源均为作者提供和网友推荐收集整理而来,仅供学习和研究使用,请在下载后24小时内删除,谢谢合作!
在著名论坛摘了过移动墙代码已配置|不死鸟资源网
在著名论坛摘了过移动墙代码已配置
此内容为免费阅读,请登录后查看
¥0
限时特惠
¥99
文章采用CC BY-NC-SA 4.0许可协议授权
免费阅读
THE END
点赞8 分享