جانك واير
الوظيفة: تحسين سهولة استخدام الشبكات السيئة.
يتنكر UDP كـ TCP: يقلل من جودة الخدمة بعد أن يتنكر كـ TCP
يمكن تكوين خوادم متعددة، وقطع الاتصال التلقائي، وإعادة الاتصال وتغيير الخادم، ولا يوجد وعي بالطبقة العليا: اكتشاف نبضات القلب، وإرسال 5 حزم نبضات في الثانية. في حالة فقدان كافة حزم نبضات القلب الخمس، قم بالتبديل إلى الخادم التالي. يمكن إكماله خلال ثانيتين.
تصحيح الخطأ الأمامي الاختياري FEC: يمكن أن تؤدي 20 حزمة أصلية بالإضافة إلى 10 حزم لتصحيح الأخطاء إلى تقليل معدل فقدان الحزمة إلى جزء من عشرة آلاف.
تشفير التشذير: يمكنه توزيع فقدان الحزمة بشكل متساوٍ في فترة زمنية قصيرة لمنع فقدان الحزم الأصلية وحزم تصحيح الأخطاء.
طريقة التكوين
يستخدم Junkwire أجهزة tun لنقل البيانات، لذا تأكد أولاً من أن بيئة التشغيل تدعم أجهزة tun. بعد التشغيل، سيتم إنشاء جهاز ضبط يسمى faketcp، ويمكن تكوين عنوان IP لهذا الجهاز من خلال ملف التكوين. بشكل عام، يمكن كتابته كـ 10.1.1.1، طالما أنه لا يتعارض مع بيئة شبكتك المحلية. بعد التشغيل، سيتم جعل جهاز الشبكة 10.1.1.2 افتراضيًا.
تكوين الخادم
أولاً، قم بتكوين خادم DNAT لإعادة توجيه حزم المنفذ المقابل إلى junkwire للمعالجة.
قم أولاً بتمكين إعادة توجيه ipv4، وأضف net.ipv4.ip_forward=1 إلى الملف /etc/sysctl.conf، ثم قم بتشغيل sysctl -p لتفعيله.
إضافة قواعد iptables iptables -t nat -A PREROUTING -i اسم بطاقة الشبكة -d بطاقة الشبكة IP -p tcp --dport 17021 (منفذ اتصال العميل) -j DNAT --to-destination 10.1.1.2:17021
مثال على تكوين Wireguard، يتغير وفقًا للوضع الفعلي
[Interface]
Address = 10.200.201.1/24
ListenPort = 21007
#ListenPort = 12273
PrivateKey = xxx
MTU = 1340
[Peer]
PublicKey = xxx
AllowedIPs = 10.200.201.2/32
PersistentKeepalive = 25
مثال على ملف تكوين junkwire من جانب الخادم
{
"mode": "server",
"queue":500,
"server": {
"tun": {
"deviceIP": "10.1.1.1",
"port": "17021",
"srcIP": "10.1.1.2"
},
"socket": {
"dstIP": "127.0.0.1",
"dstPort": "21007"
}
},
"fec": {
"enable":false, //是否启用fec
"seg": 20, //几个数据包
"parity": 20, //几个纠错包
"duration":0, //交织编码的时长
"stageTimeout":8, //桶没装满的话最长等多久
"cap":500,
"row":1000
}
}
ابدأ تشغيل ملف التكوين junkwire ./junkwire -c
ابدأ تشغيل wireguard wg-quick up wg0
تكوين العميل
يحتاج العميل إلى السماح بإرسال بيانات الجهاز الظاهري 10.1.1.2 بسلاسة، ويلزم وجود snat.
iptables -t nat -A POSTROUTING -s 10.1.1.2 -p tcp -o eth0 -j SNAT --إلى مصدر بطاقة الشبكة المحلية ip
تكوين التوجيه لمنع تصدير عنوان IP إلى Wireguard
مسار IP إضافة خادم IP/32 عبر البوابة المحلية dev eth0
تكوين الحماية السلكية
[Interface]
Address = 10.200.201.2/24
PrivateKey = yJAu/oI+Oo/Mhswqbm3I/3PWYi+WSxX7JpTQ8IoQqWU=
MTU = 1340
[Peer]
PublicKey = 5/SgVv3hc3f5Fa/XoLo4isBzyrwwATs5sfQv7oWhiTM=
Endpoint = 127.0.0.1:21007
AllowedIPs = 0.0.0.0/1,128.0.0.0/1
PersistentKeepalive = 25
مثال على تكوين junkwire
{
"mode": "client",
"queue":500,
"client": {
"tun": {
"deviceIP": "10.1.1.1",
"port": "8978",
"srcIP": "10.1.1.2",
"peers": [
{
"ip":"线路1",
"port":"50018"
},
{
"ip":"线路2",
"port":"17021"
},
{
"ip":"线路3",
"port":"17021"
}
]
},
"socket": {
"listenPort": "21007"
}
},
"fec": {
"enable":false,
"seg": 20,
"parity": 10,
"stageTimeout": 8,
"duration": 0,
"cap": 500,
"row": 1000
}
}
ابدأ تشغيل ملف التكوين junkwire ./junkwire -c
ابدأ تشغيل wireguard wg-quick up wg0