อ่านภาษาอังกฤษ
ไซต์วิกิ: v2.gost.run
กลุ่มสนทนาโทรเลข: https://t.me/gogost
กลุ่มสนทนาของ Google: https://groups.google.com/d/forum/go-gost
https://github.com/ginuerzh/gost/releases
git clone https://github.com/ginuerzh/gost.git
cd gost/cmd/gost
go build
docker run --rm ginuerzh/gost -V
brew install gost
sudo snap install core
sudo snap install gost
gost -L=:8080
gost -L=admin:123456@localhost:8080
gost -L=http2://:443 -L=socks5://:1080 -L=ss://aes-128-cfb:123456@:8338
gost -L=:8080 -F=192.168.1.1:8081
gost -L=:8080 -F=http://admin:[email protected]:8081
gost -L=:8080 -F=quic://192.168.1.1:6121 -F=socks5+wss://192.168.1.2:1080 -F=http2://192.168.1.3:443 ... -F=a.b.c.d:NNNN
gost จะส่งต่อคำขอไปที่ abcd:NNNN เพื่อประมวลผลผ่านพร็อกซีเชนตามลำดับที่กำหนดโดย -F พร็อกซีการส่งต่อแต่ละรายการสามารถเป็นพร็อกซีประเภท HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks ใดก็ได้
gost -L=tcp://:2222/192.168.1.1:22 [-F = ...]
ส่งต่อข้อมูลบนพอร์ต TCP ในเครื่อง 2222 (ผ่านพร็อกซีเชน) ไปที่ 192.168.1.1:22 เมื่อจุดสิ้นสุดของห่วงโซ่พร็อกซี (พารามิเตอร์ -F สุดท้าย) เป็นประเภทช่องทางการส่งต่อ SSH gost จะใช้ฟังก์ชันการส่งต่อพอร์ตในเครื่องของ SSH โดยตรง:
gost -L=tcp://:2222/192.168.1.1:22 -F forward+ssh://:2222
gost -L=udp://:5353/192.168.1.1:53 ? ttl=60 [-F = ...]
ส่งต่อข้อมูลบนพอร์ต UDP ภายในเครื่อง 5353 (ผ่านพร็อกซีเชน) ไปที่ 192.168.1.1:53 แต่ละช่องทางการส่งต่อจะมีระยะหมดเวลา เมื่อเกินเวลานี้และไม่มีการโต้ตอบข้อมูลภายในช่วงเวลานี้ ช่องทางจะถูกปิด การหมดเวลาสามารถตั้งค่าได้ผ่านพารามิเตอร์ ttl
และค่าเริ่มต้นคือ 60 วินาที
หมายเหตุ: เมื่อส่งต่อข้อมูล UDP หากมีสายพร็อกซี จุดสิ้นสุดของสายพร็อกซี (พารามิเตอร์ -F สุดท้าย) จะต้องเป็นพร็อกซีประเภท gost SOCKS5 และ gost จะใช้ UDP ผ่าน TCP สำหรับการส่งต่อ
gost -L=rtcp://:2222/192.168.1.1:22 [-F = ... -F = socks5://172.24.10.1:1080]
ส่งต่อข้อมูลบน 172.24.10.1:2222 (ผ่านพร็อกซีเชน) ไปที่ 192.168.1.1:22 เมื่อจุดสิ้นสุดของห่วงโซ่พร็อกซี (พารามิเตอร์ -F สุดท้าย) เป็นประเภทช่องทางการส่งต่อ SSH gost จะใช้ฟังก์ชันการส่งต่อพอร์ตระยะไกลของ SSH โดยตรง:
gost -L=rtcp://:2222/192.168.1.1:22 -F forward+ssh://:2222
gost -L=rudp://:5353/192.168.1.1:53 ? ttl=60 [-F = ... -F = socks5://172.24.10.1:1080]
ส่งต่อข้อมูลบน 172.24.10.1:5353 (ผ่านพร็อกซีเชน) ไปที่ 192.168.1.1:53 แต่ละช่องทางการส่งต่อจะมีระยะหมดเวลา เมื่อเกินเวลานี้และไม่มีการโต้ตอบข้อมูลภายในช่วงเวลานี้ ช่องทางจะถูกปิด การหมดเวลาสามารถตั้งค่าได้ผ่านพารามิเตอร์ ttl
และค่าเริ่มต้นคือ 60 วินาที
หมายเหตุ: เมื่อส่งต่อข้อมูล UDP หากมีลูกโซ่พร็อกซี จุดสิ้นสุดของลูกโซ่พร็อกซี (พารามิเตอร์ -F สุดท้าย) จะต้องเป็นพร็อกซีประเภท GOST SOCKS5 และ gost จะใช้ UDP-over-TCP สำหรับการส่งต่อ
HTTP2 ของ Gost รองรับสองโหมด:
เซิร์ฟเวอร์:
gost -L=http2://:443
ลูกค้า:
gost -L=:8080 -F=http2://server_ip:443
เซิร์ฟเวอร์:
gost -L=h2://:443
ลูกค้า:
gost -L=:8080 -F=h2://server_ip:443
การสนับสนุนของ gost สำหรับ QUIC ขึ้นอยู่กับไลบรารี Quic-go
เซิร์ฟเวอร์:
gost -L=quic://:6121
ลูกค้า:
gost -L=:8080 -F=quic://server_ip:6121
หมายเหตุ: โหมด QUIC สามารถใช้เป็นโหนดแรกของห่วงโซ่พร็อกซีเท่านั้น
การสนับสนุน KCP ของ gost ขึ้นอยู่กับไลบรารี kcp-go และ kcptun
เซิร์ฟเวอร์:
gost -L=kcp://:8388
ลูกค้า:
gost -L=:8080 -F=kcp://server_ip:8388
gost จะโหลดไฟล์การกำหนดค่า kcp.json (ถ้ามี) โดยอัตโนมัติในไดเร็กทอรีการทำงานปัจจุบัน หรือคุณสามารถระบุพาธของไฟล์การกำหนดค่าด้วยตนเองผ่านพารามิเตอร์:
gost -L=kcp://:8388 ? c=/path/to/conf/file
หมายเหตุ: โหมด KCP สามารถใช้เป็นโหนดแรกของห่วงโซ่พร็อกซีเท่านั้น
SSH ของ gost รองรับสองโหมด:
เซิร์ฟเวอร์:
gost -L=forward+ssh://:2222
ลูกค้า:
gost -L=rtcp://:1222/:22 -F=forward+ssh://server_ip:2222
เซิร์ฟเวอร์:
gost -L=ssh://:2222
ลูกค้า:
gost -L=:8080 -F=ssh://server_ip:2222 ? ping=60
คุณสามารถกำหนดระยะเวลาการส่งแพ็กเก็ตฮาร์ทบีทผ่านพารามิเตอร์ ping
ได้ในหน่วยวินาที แพ็กเก็ต Heartbeat จะไม่ถูกส่งตามค่าเริ่มต้น
พร็อกซีโปร่งใสตาม iptables
gost -L=redirect://:12345 -F=http2://server_ip:443
คุณลักษณะนี้สนับสนุนโดย @isofew
เซิร์ฟเวอร์:
gost -L=obfs4://:443
เมื่อเซิร์ฟเวอร์กำลังทำงาน ที่อยู่การเชื่อมต่อจะถูกพิมพ์บนคอนโซลเพื่อให้ไคลเอนต์ใช้:
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
ลูกค้า:
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
สำหรับ HTTP สามารถใช้ TLS เพื่อเข้ารหัสกระบวนการสื่อสารทั้งหมดได้ ซึ่งก็คือพร็อกซี HTTPS:
เซิร์ฟเวอร์:
gost -L=https://:443
ลูกค้า:
gost -L=:8080 -F=http+tls://server_ip:443
โหมดพร็อกซี HTTP2 ของ Gost รองรับเฉพาะโปรโตคอล HTTP2 ที่ใช้การเข้ารหัส TLS และไม่รองรับการส่ง HTTP2 แบบข้อความธรรมดา
โหมดช่องสัญญาณ HTTP2 ของ Gost รองรับโหมดการเข้ารหัส (h2) และโหมดข้อความธรรมดา (h2c)
gost รองรับวิธี no-auth (0x00) และ user/pass (0x02) ของโปรโตคอล SOCKS5 มาตรฐาน และขยายสองวิธีบนพื้นฐานนี้: tls (0x80) และ tls-auth (0x82) สำหรับการเข้ารหัสข้อมูล
เซิร์ฟเวอร์:
gost -L=socks5://:1080
ลูกค้า:
gost -L=:8080 -F=socks5://server_ip:1080
หากปลายทั้งสองข้างเป็น gost (ตามด้านบน) การส่งข้อมูลจะถูกเข้ารหัส (เจรจาโดยใช้วิธี tls หรือ tls-auth) มิฉะนั้น SOCKS5 มาตรฐานจะถูกใช้สำหรับการสื่อสาร (วิธี no-auth หรือผู้ใช้/ผ่าน)
การสนับสนุน shadowsocks ของ gost ขึ้นอยู่กับไลบรารี shadowsocks-go
เซิร์ฟเวอร์:
gost -L=ss://chacha20:123456@:8338
ลูกค้า:
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338
ขณะนี้มีเพียงเซิร์ฟเวอร์เท่านั้นที่รองรับ UDP Relay
เซิร์ฟเวอร์:
gost -L=ssu://chacha20:123456@:8338
gost มีใบรับรอง TLS ในตัว หากคุณต้องการใช้ใบรับรอง TLS อื่น ๆ มีสองวิธี:
gost -L= " http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file "
สำหรับไคลเอนต์ คุณสามารถเปิดใช้งานใบรับรองเซิร์ฟเวอร์และการตรวจสอบชื่อโดเมนผ่านพารามิเตอร์ secure
:
gost -L=:8080 -F= " http2://server_domain_name:443?secure=true "
สำหรับไคลเอนต์ คุณสามารถระบุใบรับรอง CA สำหรับการปักหมุดใบรับรอง (การปักหมุดใบรับรอง):
gost -L=:8080 -F= " http2://:443?ca=ca.pem "
คุณสมบัติการปักหมุดใบรับรองสนับสนุนโดย @sheerun