搜索
缓存时间20 现在时间20 缓存数据 一个人的快乐,不是因为他拥有的多,而是因为他计较的少。晚安!
查看: 359|回复: 2

哪位大佬又解决过移动墙的方法,求助

[复制链接]
发表于 2024-9-29 17:16:48 | 显示全部楼层 |阅读模式

厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。使用帐户,不仅可以享受无广告的清爽界面!

您需要 登录 才可以下载或查看,没有账号?注册

×
哪位大佬又解决过移动墙的方法,求助
爱生活,爱奶昔~
发表于 2024-9-29 18:13:05 | 显示全部楼层
那么我们首先研究一下 移动墙的原理(不想看废话的直接跳过 但授人以鱼不如授人以渔 多学刁是好事情)

1:什么是移动墙?

境外网站只要你的服务器IP不是国内域名经常就会出现电信联通可以访问,但是移动打不开的情况。

首先你要知道 很多国外服务器IDC 他们走的线路是不同的 例如:香港走南方电信,俄罗斯走北京联通;(以上来源于网络科普)移动的用户如果访问这些境外网站,移动公司就得给电信 联通钱,所以移动现在直接给你一刀切 就不让你访问,也就是墙掉域名无法访问

2:移动墙的原理

用移动的网访问电信联通带宽上的网站,就会产生一个跨域流量 相当于你来我停车场停车 你要给我停车费,移动就得给电信联通付停车费 建国互联网早期的网站都是选择电信和联通的 之前联通叫网通 所以移动吃亏了啊 就要给他俩每年很多费用 所以现在移动会自行劫持你的DNS 让你尽可能用移动的服务器 有一些热门网站 移动也会干脆给你镜像 给你劫持过来 放在自己的服务器上 对于境外IP的服务器 就直接给你限速(QoS策略 这里不做解释 网上很多人解释的比我好 我一知半解)对于有的违法网站就直接给你一刀切 不让你访问

3:解决方法

该方法有待考证稳定性!脚本来源互联网 我并非原创!

复制下方代码保存文件(从cat复制到EOF,复制后粘贴到终端回车,会自动将代码保存成geneva.py)
  1. cat <<'EOF' >geneva.py
  2. #!/usr/bin/env python3
  3. import os
  4. import signal
  5. from scapy.all import *
  6. from netfilterqueue import NetfilterQueue
  7. import argparse
  8. window_size = 17
  9. def modify_window(pkt):
  10.     try:
  11.         ip = IP(pkt.get_payload())
  12.         if ip.haslayer(TCP) and ip[TCP].flags == "SA":
  13.             ip[TCP].window = window_size
  14.             del ip[IP].chksum
  15.             del ip[TCP].chksum
  16.             pkt.set_payload(bytes(ip))
  17.         elif ip.haslayer(TCP) and ip[TCP].flags == "FA":
  18.             ip[TCP].window = window_size
  19.             del ip[IP].chksum
  20.             del ip[TCP].chksum
  21.             pkt.set_payload(bytes(ip))
  22.         elif ip.haslayer(TCP) and ip[TCP].flags == "PA":
  23.             ip[TCP].window = window_size
  24.             del ip[IP].chksum
  25.             del ip[TCP].chksum
  26.             pkt.set_payload(bytes(ip))
  27.         elif ip.haslayer(TCP) and ip[TCP].flags == "A":
  28.             ip[TCP].window = window_size
  29.             del ip[IP].chksum
  30.             del ip[TCP].chksum
  31.             pkt.set_payload(bytes(ip))
  32.     except:
  33.         pass
  34.     pkt.accept()
  35. def parsearg():
  36.     global window_size  
  37.     parser = argparse.ArgumentParser(description='Description of your program')
  38.     parser.add_argument('-q', '--queue', type=int, help='iptables Queue Num')
  39.     parser.add_argument('-w', '--window_size', type=int, help='Tcp Window Size')
  40.     args = parser.parse_args()
  41.     if args.queue is None or args.window_size is None:
  42.         exit(1)
  43.      
  44.     window_size = args.window_size  
  45.     return args.queue
  46. def main():
  47.     queue_num = parsearg()
  48.     nfqueue = NetfilterQueue()
  49.     nfqueue.bind(queue_num, modify_window)
  50.     try:
  51.         print("Starting netfilter_queue process...")
  52.         nfqueue.run()
  53.     except KeyboardInterrupt:
  54.         pass
  55. if __name__ == "__main__":
  56.     #sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
  57.     signal.signal(signal.SIGINT, lambda signal, frame: sys.exit(0))
  58.     main()
  59. EOF
复制代码

CentOS 安装依赖(centos7测试已通过)

  1. yum install -y python3 python3-devel gcc gcc-c++ git libnetfilter* libffi-devel

  2. pip3 install --upgrade pip

  3. pip3 install scapy netfilterqueue
复制代码


Ubuntu安装依赖(Ubuntu 22测试已通过)

  1. sudo apt-get install build-essential python3-dev libnetfilter-queue-dev libffi-dev libssl-dev iptables python3-pip -y

  2. pip3 install scapy netfilterqueue
复制代码


执行程序: 一条条执行

  1. nohup python3 geneva.py -q 100 -w 17 &

  2. nohup python3 geneva.py -q 101 -w 4 &

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

  4. iptables -I OUTPUT -p tcp --sport 443 --tcp-flags SYN,RST,ACK,FIN,PSH SYN,ACK -j NFQUEUE --queue-num 101
复制代码


如何查看是否运行成功?

输入命令ps -ef|grep geneva出现下方内容为启动成功

现在我们检测一下移动线路(cloudflare.com失败是因为还没解析过来)

前一秒我我还在被封

后一秒解决

注意 一定要开启强制https 宝塔的或者你cdn自带的即可
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

发表于 2024-9-29 21:40:09 来自手机 | 显示全部楼层
yagamil 发表于 2024-9-29 18:13
那么我们首先研究一下 移动墙的原理(不想看废话的直接跳过 但授人以鱼不如授人以渔 多学刁是好事情)

1: ...

一个包拆成17份,这速度不得慢死
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

Powered by Nyarime. Licensed

GMT+8, 2024-11-21 20:28 , Processed in 0.026743 second(s), 11 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网

登录切换风格
快速回复 返回顶部 返回列表