Skip to content

law52525/wireguard-go

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1,047 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ง WireGuard-Go ไฝฟ็”จๆŒ‡ๅ—

ๅŸบไบŽๅฎ˜ๆ–น WireGuard-Go ็š„ๅขžๅผบๅฎž็Žฐ๏ผŒๅŒ…ๅซ่‡ชๅˆถ็ฎก็†ๅทฅๅ…ทๅ’Œ่ทจๅนณๅฐ่‡ชๅŠจๅŒ–่„šๆœฌ

็‰น่‰ฒๅŠŸ่ƒฝ

  • ๐Ÿ”ง wg-go ็ฎก็†ๅทฅๅ…ท: ่‡ชๅˆถ็š„ Go ็‰ˆๆœฌ WireGuard ็ฎก็†ๅทฅๅ…ท
  • ๐Ÿš€ ่ทจๅนณๅฐ่‡ชๅŠจๅŒ–่„šๆœฌ: ไธ€้”ฎๅฏๅŠจใ€้‡ๅฏใ€ๅœๆญข่„šๆœฌ (ๆ”ฏๆŒ Windows/Linux/ macOS)
  • ๐ŸŒ ๆ™บ่ƒฝๅŸŸๅ่งฃๆž: ่‡ชๅŠจๅฐ†ๅŸŸๅ่งฃๆžไธบ IP ๅœฐๅ€
  • ๐Ÿ”„ ๅŠจๆ€ DNS ็›‘ๆŽง: ่‡ชๅŠจ็›‘ๆŽงๅŸŸๅ็ซฏ็‚น็š„ IP ๅ˜ๅŒ–ๅนถ้‡ๆ–ฐ่ฟžๆŽฅ
  • ๐Ÿ”‘ ๆ™บ่ƒฝๅฏ†้’ฅ่ฝฌๆข: Base64 โ†” Hex ๆ ผๅผ่‡ชๅŠจ่ฝฌๆข
  • ๐Ÿ“Š ๅฎžๆ—ถ็›‘ๆŽง: ่ฟžๆŽฅ็Šถๆ€ๅ’Œๆต้‡็ปŸ่ฎก็š„ๅฎžๆ—ถ็›‘ๆŽง
  • ๐Ÿ–ฅ๏ธ ่ทจๅนณๅฐๆ”ฏๆŒ: ๅฎŒๆ•ดๆ”ฏๆŒ Windowsใ€Linuxใ€macOS
  • ๐Ÿ“ฆ ๆž„ๅปบ็ณป็ปŸ: ่ทจๅนณๅฐๆž„ๅปบ่„šๆœฌๆ”ฏๆŒๅคšๅนณๅฐ็ผ–่ฏ‘

๐Ÿ”ง ็Žฏๅขƒๅ‡†ๅค‡

็ณป็ปŸ่ฆๆฑ‚

  • ๆ“ไฝœ็ณป็ปŸ:
    • Windows 10/11 (x64, ARM64)
    • macOS 10.15+ (Intel, Apple Silicon)
    • Linux (Ubuntu 18.04+, CentOS 7+, Fedora 42+, Arch Linux, ๅ…ถไป–ๅ‘่กŒ็‰ˆ้œ€ๆต‹่ฏ•)
  • Go ็‰ˆๆœฌ: Go 1.19+ (ๆŽจ่ Go 1.21+)
  • ๆƒ้™:
    • Windows: ็ฎก็†ๅ‘˜ๆƒ้™
    • Linux/macOS: sudo ๆƒ้™

็Žฏๅขƒๆฃ€ๆŸฅ

Linux/macOS

# ๆฃ€ๆŸฅ Go ็‰ˆๆœฌ
go version

# ๆฃ€ๆŸฅๆƒ้™
sudo echo "ๆƒ้™ๆฃ€ๆŸฅ้€š่ฟ‡"

# ๆฃ€ๆŸฅ็ฝ‘็ปœๅทฅๅ…ท
ifconfig utun0 >/dev/null 2>&1 && echo "็ฝ‘็ปœๆƒ้™ๆญฃๅธธ"

Windows

REM ๆฃ€ๆŸฅ Go ็‰ˆๆœฌ
go version

REM ๆฃ€ๆŸฅ็ฎก็†ๅ‘˜ๆƒ้™
net session >nul 2>&1 && echo "็ฎก็†ๅ‘˜ๆƒ้™ๆญฃๅธธ" || echo "้œ€่ฆ็ฎก็†ๅ‘˜ๆƒ้™"

REM ๆฃ€ๆŸฅ็ฝ‘็ปœๅทฅๅ…ท
ipconfig >nul 2>&1 && echo "็ฝ‘็ปœๅทฅๅ…ทๆญฃๅธธ"

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

Windows ็”จๆˆท

# 1. ๅ…‹้š†้กน็›ฎ
git clone https://github.com/law52525/wireguard-go.git
cd wireguard-go

# 2. ไธ‹่ฝฝไพ่ต– (ไป… Windows)
download-wintun.bat

# 3. ็ผ–่ฏ‘้กน็›ฎ
build.bat build
bulid.bat build-tools

# 4. ็ผ–่พ‘้…็ฝฎ
notepad wg0.conf

# 5. ไธ€้”ฎๅฏๅŠจ
start.bat

Linux/macOS ็”จๆˆท

# 1. ๅ…‹้š†้กน็›ฎ
git clone https://github.com/law52525/wireguard-go.git
cd wireguard-go

# 2. ็ผ–่ฏ‘้กน็›ฎ
./build.sh build
./bulid.sh build-tools

# 3. ็ผ–่พ‘้…็ฝฎ
nano wg0.conf

# 3. ไธ€้”ฎๅฏๅŠจ
sudo ./start.sh

๐Ÿ’ก ๆ็คบ: ๅฆ‚ๆžœไธๆƒณ่‡ชๅทฑ็ผ–่ฏ‘๏ผŒๅฏไปฅไปŽ Releases ไธ‹่ฝฝ้ข„็ผ–่ฏ‘็š„ๅฏๆ‰ง่กŒๆ–‡ไปถ๏ผŒๆ”ฏๆŒ Windowsใ€Linuxใ€macOS ็š„ๅ„ไธชๆžถๆž„็‰ˆๆœฌ๏ผŒๅผ€็ฎฑๅณ็”จ๏ผ

๐Ÿ“ ้กน็›ฎ็ป“ๆž„

wireguard-go/
โ”œโ”€โ”€ ๐Ÿ”ง ๆ ธๅฟƒ็จ‹ๅบ
โ”‚   โ”œโ”€โ”€ main.go                   # Linux/macOS ไธป็จ‹ๅบๅ…ฅๅฃ
โ”‚   โ”œโ”€โ”€ main_windows.go           # Windows ไธป็จ‹ๅบๅ…ฅๅฃ
โ”‚   โ””โ”€โ”€ cmd/wg-go/                # ๅ‘ฝไปค่กŒ็ฎก็†ๅทฅๅ…ท
โ”‚       โ”œโ”€โ”€ main.go               # ไธป็จ‹ๅบๅ…ฅๅฃ
โ”‚       โ”œโ”€โ”€ commands.go           # ๅ‘ฝไปคๅค„็†้€ป่พ‘
โ”‚       โ”œโ”€โ”€ uapi.go               # UAPI ้€šไฟกๆŽฅๅฃ
โ”‚       โ”œโ”€โ”€ uapi_unix.go          # Unix ๅนณๅฐ UAPI ๅฎž็Žฐ
โ”‚       โ”œโ”€โ”€ uapi_windows.go       # Windows ๅนณๅฐ UAPI ๅฎž็Žฐ
โ”‚       โ”œโ”€โ”€ crypto.go             # ๅฏ†้’ฅ็”Ÿๆˆๅ’Œ็ฎก็†
โ”‚       โ”œโ”€โ”€ monitor.go            # ๅฎžๆ—ถ็›‘ๆŽงๅŠŸ่ƒฝ
โ”‚       โ”œโ”€โ”€ go.mod                # Go ๆจกๅ—ๆ–‡ไปถ
โ”‚       โ””โ”€โ”€ go.sum                # ไพ่ต–ๆ ก้ชŒๆ–‡ไปถ
โ”‚
โ”œโ”€โ”€ ๐Ÿš€ ่‡ชๅŠจๅŒ–่„šๆœฌ
โ”‚   โ”œโ”€โ”€ start.sh                  # Linux/macOS ๅฏๅŠจ่„šๆœฌ
โ”‚   โ”œโ”€โ”€ restart.sh                # Linux/macOS ้‡ๅฏ่„šๆœฌ
โ”‚   โ”œโ”€โ”€ stop.sh                   # Linux/macOS ๅœๆญข่„šๆœฌ
โ”‚   โ”œโ”€โ”€ start.bat                 # Windows ๅฏๅŠจ่„šๆœฌ
โ”‚   โ”œโ”€โ”€ restart.bat               # Windows ้‡ๅฏ่„šๆœฌ
โ”‚   โ””โ”€โ”€ stop.bat                  # Windows ๅœๆญข่„šๆœฌ
โ”‚
โ”œโ”€โ”€ ๐Ÿ”จ ๆž„ๅปบ็ณป็ปŸ
โ”‚   โ”œโ”€โ”€ Makefile                  # ่ทจๅนณๅฐๆž„ๅปบ้…็ฝฎ
โ”‚   โ”œโ”€โ”€ build.sh                  # Linux/macOS ๆž„ๅปบ่„šๆœฌ
โ”‚   โ”œโ”€โ”€ build.bat                 # Windows ๆž„ๅปบ่„šๆœฌ
โ”‚   โ””โ”€โ”€ download-wintun.bat       # Windows wintun.dll ไธ‹่ฝฝ่„šๆœฌ
โ”‚
โ”œโ”€โ”€ ๐Ÿ“š ๆ–‡ๆกฃ
โ”‚   โ””โ”€โ”€ README.md                 # ้กน็›ฎ่ฏดๆ˜Ž
โ”‚
โ””โ”€โ”€ ๐Ÿ“ฆ ๅŽŸๅง‹ WireGuard-Go ๆบ็ 
    โ”œโ”€โ”€ conn/                     # ็ฝ‘็ปœ่ฟžๆŽฅๅค„็†
    โ”œโ”€โ”€ device/                   # ่ฎพๅค‡็ฎก็† (ๅซ DNS ็›‘ๆŽง)
    โ”œโ”€โ”€ ipc/                      # ่ฟ›็จ‹้—ด้€šไฟก
    โ”œโ”€โ”€ tun/                      # TUN ๆŽฅๅฃๅค„็†
    โ”œโ”€โ”€ ratelimiter/              # ้€Ÿ็އ้™ๅˆถ
    โ”œโ”€โ”€ replay/                   # ้‡ๆ”พไฟๆŠค
    โ”œโ”€โ”€ tai64n/                   # ๆ—ถ้—ดๆˆณ
    โ””โ”€โ”€ ...                       # ๅ…ถไป–ๅŽŸๅง‹ๆ–‡ไปถ

โญ ๆ ธๅฟƒๅŠŸ่ƒฝ

1. wg-go ็ฎก็†ๅทฅๅ…ท

  • ๅฏ†้’ฅ็ฎก็†: ็”Ÿๆˆใ€่ฝฌๆขๅฏ†้’ฅๆ ผๅผ
  • ้…็ฝฎ็ฎก็†: ๅบ”็”จใ€ๆŸฅ็œ‹ใ€ๅŒๆญฅ้…็ฝฎ
  • ๅฎžๆ—ถ็›‘ๆŽง: ่ฟžๆŽฅ็Šถๆ€ๅ’Œๆต้‡็ปŸ่ฎก
  • DNS ็›‘ๆŽง: ่‡ชๅŠจ็›‘ๆŽงๅŸŸๅ IP ๅ˜ๅŒ–

2. ่ทจๅนณๅฐ่‡ชๅŠจๅŒ–

  • ไธ€้”ฎๅฏๅŠจ: ่‡ชๅŠจ็ผ–่ฏ‘ใ€้…็ฝฎใ€ๅฏๅŠจ
  • ๆ™บ่ƒฝ้‡ๅฏ: ่‡ชๅŠจๅœๆญขใ€ๆธ…็†ใ€้‡ๅฏ
  • ๅฎŒๆ•ดๅœๆญข: ่‡ชๅŠจๆธ…็†ๆ‰€ๆœ‰่ต„ๆบ

3. ๆ™บ่ƒฝ็‰นๆ€ง

  • ๅŸŸๅ่งฃๆž: ่‡ชๅŠจ่งฃๆžๅŸŸๅ็ซฏ็‚น
  • ๅŠจๆ€ DNS: ็›‘ๆŽง IP ๅ˜ๅŒ–ๅนถ่‡ชๅŠจ้‡่ฟž
  • ๆ ผๅผ่ฝฌๆข: Base64 โ†” Hex ่‡ชๅŠจ่ฝฌๆข
  • ่ถ…ๆ—ถๅค„็†: ้˜ฒๆญขๅ‘ฝไปคๆŒ‚่ตท

๐Ÿ“– ่ฏฆ็ป†ไฝฟ็”จ

้…็ฝฎๆ–‡ไปถ็คบไพ‹

wg0.conf:

[Interface]
PrivateKey = YOUR_PRIVATE_KEY
Address = 192.168.2.10/32
DNS = 8.8.8.8

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = server.example.com:51820  # ๆ”ฏๆŒๅŸŸๅ
AllowedIPs = 192.168.2.0/24, 192.168.1.0/24
PersistentKeepalive = 25

ๅฏ†้’ฅ็”Ÿๆˆ

# Linux/macOS
PRIVATE_KEY=$(./cmd/wg-go/wg-go genkey)
PUBLIC_KEY=$(echo "$PRIVATE_KEY" | ./cmd/wg-go/wg-go pubkey)

# Windows
cmd\wg-go\wg-go.exe genkey
echo PRIVATE_KEY | cmd\wg-go\wg-go.exe pubkey

ๅธธ็”จๅ‘ฝไปค

้…็ฝฎ็ฎก็†

# ๆŸฅ็œ‹็Šถๆ€
sudo ./cmd/wg-go/wg-go show wg0

# ๅบ”็”จ้…็ฝฎ
sudo ./cmd/wg-go/wg-go setconf wg0 wg0.conf

# ๆŸฅ็œ‹้…็ฝฎ
sudo ./cmd/wg-go/wg-go showconf wg0

็›‘ๆŽงๅŠŸ่ƒฝ

# ๅฎžๆ—ถ็›‘ๆŽง
sudo ./cmd/wg-go/wg-go monitor wg0

# DNS ็›‘ๆŽง็ฎก็†
sudo ./cmd/wg-go/wg-go dns wg0 show      # ๆŸฅ็œ‹็Šถๆ€
sudo ./cmd/wg-go/wg-go dns wg0 30        # ่ฎพ็ฝฎ 30 ็ง’้—ด้š”

่‡ชๅŠจๅŒ–่„šๆœฌ

# Linux/macOS
sudo ./start.sh      # ๅฏๅŠจ
sudo ./restart.sh    # ้‡ๅฏ
sudo ./stop.sh       # ๅœๆญข

# Windows
start.bat            # ๅฏๅŠจ
restart.bat          # ้‡ๅฏ
stop.bat             # ๅœๆญข

๐Ÿ”จ ๆž„ๅปบๅ’Œ็ผ–่ฏ‘

ไฝฟ็”จๆž„ๅปบ่„šๆœฌ (ๆŽจ่)

# Linux/macOS
./build.sh build          # ๆž„ๅปบๅฝ“ๅ‰ๅนณๅฐ
./build.sh build-all      # ๆž„ๅปบๆ‰€ๆœ‰ๅนณๅฐ
./build.sh build-tools    # ๆž„ๅปบๅ‘ฝไปค่กŒๅทฅๅ…ท
./build.sh clean          # ๆธ…็†

# Windows
build.bat build           # ๆž„ๅปบๅฝ“ๅ‰ๅนณๅฐ
build.bat build-all       # ๆž„ๅปบๆ‰€ๆœ‰ๅนณๅฐ
build.bat build-tools     # ๆž„ๅปบๅ‘ฝไปค่กŒๅทฅๅ…ท
build.bat clean           # ๆธ…็†

ๆ‰‹ๅŠจ็ผ–่ฏ‘

# Linux/macOS
go build -o wireguard-go .
cd cmd/wg-go && go build -o wg-go .

# Windows
go build -o wireguard-go.exe .
cd cmd\wg-go && go build -o wg-go.exe .

๐Ÿ› ๏ธ ๆ•…้šœๆŽ’้™ค

ๅธธ่ง้—ฎ้ข˜

1. ๆƒ้™้—ฎ้ข˜

# ้—ฎ้ข˜: permission denied
# ่งฃๅ†ณ: ไฝฟ็”จ sudo
sudo ./cmd/wg-go/wg-go show wg0

2. ่ฟžๆŽฅ้—ฎ้ข˜

# ๆฃ€ๆŸฅ็Šถๆ€
sudo ./cmd/wg-go/wg-go show wg0

# ๆฃ€ๆŸฅ็ฝ‘็ปœ
ping 192.168.2.1

# ๆฃ€ๆŸฅ่ทฏ็”ฑ
netstat -rn | grep wg0

3. ็ผ–่ฏ‘้—ฎ้ข˜

# ๆฃ€ๆŸฅ Go ็‰ˆๆœฌ
go version

# ๆธ…็†้‡็ผ–่ฏ‘
go clean
go build -o wireguard-go .

่ฐƒ่ฏ•ๆŠ€ๅทง

# ๆŸฅ็œ‹่ฟ›็จ‹
ps aux | grep wireguard

# ๆŸฅ็œ‹ๆŽฅๅฃ
ifconfig wg0

# ๆŸฅ็œ‹ๆ—ฅๅฟ—
sudo dmesg | grep -i wireguard

๐Ÿ”ฌ ๆŠ€ๆœฏ็‰นๆ€ง

ๆ ธๅฟƒๆ”น่ฟ›

  1. UAPI ๅ่ฎฎไฟฎๅค: ๆญฃ็กฎๅฎž็Žฐ get=1\n\n ๆ ผๅผ
  2. ๆ™บ่ƒฝๅŸŸๅ่งฃๆž: ่‡ชๅŠจ่งฃๆžๅŸŸๅ็ซฏ็‚น
  3. ๅŠจๆ€ DNS ็›‘ๆŽง: ่‡ชๅŠจ็›‘ๆŽง IP ๅ˜ๅŒ–ๅนถ้‡่ฟž
  4. ๅฏ†้’ฅๆ ผๅผ่ฝฌๆข: Base64 โ†” Hex ่‡ชๅŠจ่ฝฌๆข
  5. ่ถ…ๆ—ถๅค„็†: ้˜ฒๆญขๅ‘ฝไปคๆŒ‚่ตท

ๅนณๅฐๆ”ฏๆŒ

  • Windows: ๅฎŒๆ•ดๆ”ฏๆŒ๏ผŒ้œ€่ฆ wintun.dll
  • Linux: ๅฎŒๆ•ดๆ”ฏๆŒ๏ผŒไฝฟ็”จ Unix socket
  • macOS: ๅฎŒๆ•ดๆ”ฏๆŒ๏ผŒไฝฟ็”จ Unix socket

ๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        wg-go ๅทฅๅ…ท                            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ main.go        โ”‚ ๅ‘ฝไปค่งฃๆžๅ’Œๅˆ†ๅ‘                                โ”‚
โ”‚ commands.go    โ”‚ ๅ„็งๅ‘ฝไปค็š„ๅ…ทไฝ“ๅฎž็Žฐ                             โ”‚
โ”‚ uapi.go        โ”‚ WireGuard UAPI ้€šไฟก + ๅŸŸๅ่งฃๆž                โ”‚
โ”‚ crypto.go      โ”‚ ๅฏ†้’ฅ็”Ÿๆˆใ€ๆ ผๅผ่ฝฌๆข                             โ”‚
โ”‚ monitor.go     โ”‚ ๅฎžๆ—ถ็›‘ๆŽงๅŠŸ่ƒฝ                                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                           โ”‚ UAPI Socket
                           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    wireguard-go ๅฎˆๆŠค่ฟ›็จ‹                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ device/        โ”‚ WireGuard ่ฎพๅค‡็ฎก็†                           โ”‚
โ”‚ conn/          โ”‚ ็ฝ‘็ปœ่ฟžๆŽฅๅค„็†                                 โ”‚
โ”‚ tun/           โ”‚ TUN ๆŽฅๅฃ็ฎก็†                                 โ”‚
โ”‚ ipc/           โ”‚ UAPI ๆŽฅๅฃๅฎž็Žฐ                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                           โ”‚ TUN Interface
                           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       ็ฝ‘็ปœๆ ˆ                                 โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ wg0/utun11 ๆŽฅๅฃ โ”‚ ่™šๆ‹Ÿ็ฝ‘็ปœๆŽฅๅฃ                                 โ”‚
โ”‚ ่ทฏ็”ฑ่กจ           โ”‚ ็ฝ‘็ปœ่ทฏ็”ฑ็ฎก็†                                 โ”‚
โ”‚ ้˜ฒ็ซๅข™           โ”‚ ็ฝ‘็ปœๅฎ‰ๅ…จ็ญ–็•ฅ                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“š ๅ‘ฝไปคๅ‚่€ƒ

wg-go ๅทฅๅ…ทๅ‘ฝไปค

# ๅฏ†้’ฅ็ฎก็†
wg-go genkey                    # ็”Ÿๆˆ็ง้’ฅ
echo "KEY" | wg-go pubkey       # ็”Ÿๆˆๅ…ฌ้’ฅ
wg-go genpsk                    # ็”Ÿๆˆ้ข„ๅ…ฑไบซๅฏ†้’ฅ

# ้…็ฝฎ็ฎก็†
wg-go show [interface]          # ๆ˜พ็คบ็Šถๆ€
wg-go setconf <interface> <config>  # ๅบ”็”จ้…็ฝฎ
wg-go showconf <interface>      # ๆ˜พ็คบ้…็ฝฎ

# ็›‘ๆŽงๅŠŸ่ƒฝ
wg-go monitor [interface] [interval]  # ๅฎžๆ—ถ็›‘ๆŽง
wg-go dns <interface> show      # DNS ็›‘ๆŽง็Šถๆ€
wg-go dns <interface> <interval>  # ่ฎพ็ฝฎ็›‘ๆŽง้—ด้š”

๐ŸŽฏ ๆ€ป็ป“

่ฟ™ไธช WireGuard-Go ๅขžๅผบ็‰ˆๆœฌๆไพ›๏ผš

โœ… ๅฎŒๆ•ด็š„ WireGuard ็ฎก็†ๅทฅๅ…ท - ๆ— ้œ€ๅค–้ƒจไพ่ต–
โœ… ่ทจๅนณๅฐ่‡ชๅŠจๅŒ–่„šๆœฌ - ไธ€้”ฎๅฏๅŠจใ€้‡ๅฏใ€ๅœๆญข
โœ… ๆ™บ่ƒฝๅŠŸ่ƒฝ - ๅŸŸๅ่งฃๆžใ€ๅŠจๆ€ DNS ็›‘ๆŽงใ€ๆ ผๅผ่ฝฌๆข
โœ… ่ฏฆ็ป†ๆ–‡ๆกฃ - ไปŽๅฎ‰่ฃ…ๅˆฐๆ•…้šœๆŽ’้™ค็š„ๅฎŒๆ•ดๆŒ‡ๅ—
โœ… ๅฎžๆˆ˜้ชŒ่ฏ - ๅœจ Windowsใ€macOSใ€Linux ไธŠๅฎŒๅ…จๆต‹่ฏ•้€š่ฟ‡

ๅฟซ้€Ÿๅผ€ๅง‹:

  • Windows: start.bat
  • Linux/macOS: sudo ./start.sh

้œ€่ฆๅธฎๅŠฉ๏ผŸ ่ฟ่กŒ wg-go help ๆŸฅ็œ‹ๅ‘ฝไปคๅธฎๅŠฉ

About

wireguard-go with DNS monitor

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 85.7%
  • Shell 9.1%
  • Batchfile 4.6%
  • Makefile 0.6%