จังค์ไวร์
ฟังก์ชั่น: ปรับปรุงการใช้งานเครือข่ายที่ไม่ดี
UDP ปลอมตัวเป็น TCP: ลด QoS หลังจากปลอมแปลงเป็น TCP
สามารถกำหนดค่าเซิร์ฟเวอร์ได้หลายตัว การตัดการเชื่อมต่ออัตโนมัติ การเชื่อมต่อใหม่และการเปลี่ยนเซิร์ฟเวอร์ ไม่มีการรับรู้ชั้นบน: การตรวจจับฮาร์ทบีท การส่งแพ็กเก็ตฮาร์ทบีท 5 ชุดต่อวินาที หากแพ็กเก็ตฮาร์ทบีททั้งห้าสูญหาย ให้สลับไปยังเซิร์ฟเวอร์ถัดไป สามารถทำได้ภายใน 2 วินาที
การแก้ไขข้อผิดพลาดการส่งต่อ 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 ได้อย่างราบรื่นและจำเป็นต้องมี snap
iptables -t nat -A POSTROUTING -s 10.1.1.2 -p tcp -o eth0 -j SNAT - ไปยังแหล่งที่มาของการ์ดเครือข่ายท้องถิ่น ip
การกำหนดค่าเส้นทางเพื่อป้องกันไม่ให้ IP การส่งออกถูกนำเข้าสู่ Wireguard
เส้นทาง ip เพิ่มเซิร์ฟเวอร์ ip/32 ผ่านเกตเวย์ท้องถิ่น dev eth0
การกำหนดค่า wireguard
[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