Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
784e1da
Add `/dns/flush-clash` meta api
Zephyruso Aug 11, 2025
1b05ee5
Add support for ech retry configs
neletor Aug 11, 2025
20b6488
Fix ECH retry support
nekohasekai Oct 7, 2025
3d0cc9b
Add interface address rule items
nekohasekai Aug 14, 2025
fcaaeb2
documentation: Add interface address rule items
nekohasekai Aug 14, 2025
ee5dab7
Add `preferred_by` route rule item
nekohasekai Aug 15, 2025
709748a
documentation: Add `preferred_by` route rule item
nekohasekai Aug 15, 2025
aab3e84
Fix rule set version
xchacha20-poly1305 Aug 15, 2025
2be506d
Use resolved in local DNS server if available
nekohasekai Aug 15, 2025
ff5f76f
Improve `local` DNS server on darwin
nekohasekai Aug 18, 2025
012089c
Stop using DHCP on iOS and tvOS
nekohasekai Aug 19, 2025
1eaa6b2
documentation: Improve `local` DNS server
nekohasekai Aug 18, 2025
f3a63b3
documentation: Remove outdated icons
nekohasekai Aug 18, 2025
d314b8e
Fix rule-set format
nekohasekai Aug 18, 2025
c5dfc75
Fix legacy DNS config
nekohasekai Aug 18, 2025
192ae88
Remove use of ldflags `-checklinkname=0` on darwin
nekohasekai Aug 19, 2025
7488825
documentation: Update behavior of `local` DNS server on darwin
nekohasekai Aug 19, 2025
6e2111d
Fix resolve using resolved
nekohasekai Aug 26, 2025
6a77bd7
Add proxy support for ICMP echo request
nekohasekai Feb 17, 2025
843c80d
Add support for kTLS
nekohasekai Sep 7, 2025
223bcfa
ktls: Add warning for inappropriate scenarios
nekohasekai Sep 8, 2025
7a0006c
Improve compatibility for kTLS
nekohasekai Sep 9, 2025
efddaf4
Improve ktls rx error handling
nekohasekai Sep 9, 2025
be2f25f
release: Fix linux build
nekohasekai Sep 10, 2025
2afb08c
Fix ping domain
nekohasekai Sep 11, 2025
a22b090
Fix preConnectionCopy
nekohasekai Sep 14, 2025
c0423bb
Update WireGuard and Tailscale
nekohasekai Sep 15, 2025
36fd685
Update quic-go to v0.55.0
nekohasekai Sep 15, 2025
eded05a
documentation: Update chinese translations
nekohasekai Sep 17, 2025
64ad966
Do not use linkname by default to simplify debugging
nekohasekai Sep 17, 2025
96090af
Remove compatibility codes
nekohasekai Sep 17, 2025
b861068
Update tfo-go to latest
nekohasekai Sep 17, 2025
9d833f9
Fix WireGuard input packet
nekohasekai Sep 17, 2025
d21ed21
Add curve preferences, pinned public key SHA256 and mTLS for TLS options
nekohasekai Sep 17, 2025
baa4d1d
Fix missing mTLS support in client options
nekohasekai Oct 9, 2025
2b573fc
Use a more conservative strategy for resolving with systemd-resolved …
nekohasekai Oct 16, 2025
4e02023
Fix compatibility with MPTCP
nekohasekai Oct 17, 2025
dd2b5fd
Add claude code multiplexer service
nekohasekai Oct 21, 2025
2343d74
Fix read credentials for ccm service
nekohasekai Oct 21, 2025
84ceb90
documentation: Bump version
nekohasekai Oct 25, 2025
0017c6e
fix tls dialer when tls.enabled is false
nunu6689 Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 75 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,6 @@ jobs:
- { os: windows, arch: "386", legacy_win7: true, legacy_name: "windows-7" }
- { os: windows, arch: arm64 }

- { os: darwin, arch: amd64 }
- { os: darwin, arch: arm64 }
- { os: darwin, arch: amd64, legacy_go124: true, legacy_name: "macos-11" }

- { os: android, arch: arm64, ndk: "aarch64-linux-android21" }
- { os: android, arch: arm, ndk: "armv7a-linux-androideabi21" }
- { os: android, arch: amd64, ndk: "x86_64-linux-android21" }
Expand Down Expand Up @@ -146,15 +142,15 @@ jobs:
- name: Set build tags
run: |
set -xeuo pipefail
TAGS='with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale'
TAGS='with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale,with_ccm,badlinkname,tfogo_checklinkname0'
echo "BUILD_TAGS=${TAGS}" >> "${GITHUB_ENV}"
- name: Build
if: matrix.os != 'android'
run: |
set -xeuo pipefail
mkdir -p dist
go build -v -trimpath -o dist/sing-box -tags "${BUILD_TAGS}" \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }}' \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }} -checklinkname=0' \
./cmd/sing-box
env:
CGO_ENABLED: "0"
Expand All @@ -174,7 +170,7 @@ jobs:
export CXX="${CC}++"
mkdir -p dist
GOOS=$BUILD_GOOS GOARCH=$BUILD_GOARCH build go build -v -trimpath -o dist/sing-box -tags "${BUILD_TAGS}" \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }}' \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }} -checklinkname=0' \
./cmd/sing-box
env:
CGO_ENABLED: "1"
Expand Down Expand Up @@ -285,6 +281,77 @@ jobs:
with:
name: binary-${{ matrix.os }}_${{ matrix.arch }}${{ matrix.goarm && format('v{0}', matrix.goarm) }}${{ matrix.go386 && format('_{0}', matrix.go386) }}${{ matrix.gomips && format('_{0}', matrix.gomips) }}${{ matrix.legacy_name && format('-legacy-{0}', matrix.legacy_name) }}
path: "dist"
build_darwin:
name: Build Darwin binaries
if: github.event_name != 'workflow_dispatch' || inputs.build == 'All' || inputs.build == 'Binary'
runs-on: macos-latest
needs:
- calculate_version
strategy:
matrix:
include:
- { arch: amd64 }
- { arch: arm64 }
- { arch: amd64, legacy_go124: true, legacy_name: "macos-11" }
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
- name: Setup Go
if: ${{ ! matrix.legacy_go124 }}
uses: actions/setup-go@v5
with:
go-version: ^1.25.3
- name: Setup Go 1.24
if: matrix.legacy_go124
uses: actions/setup-go@v5
with:
go-version: ~1.24.6
- name: Set tag
run: |-
git ls-remote --exit-code --tags origin v${{ needs.calculate_version.outputs.version }} || echo "PUBLISHED=false" >> "$GITHUB_ENV"
git tag v${{ needs.calculate_version.outputs.version }} -f
- name: Set build tags
run: |
set -xeuo pipefail
TAGS='with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale,with_ccm,badlinkname,tfogo_checklinkname0'
echo "BUILD_TAGS=${TAGS}" >> "${GITHUB_ENV}"
- name: Build
run: |
set -xeuo pipefail
mkdir -p dist
go build -v -trimpath -o dist/sing-box -tags "${BUILD_TAGS}" \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }} -checklinkname=0' \
./cmd/sing-box
env:
CGO_ENABLED: "1"
GOOS: darwin
GOARCH: ${{ matrix.arch }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set name
run: |-
DIR_NAME="sing-box-${{ needs.calculate_version.outputs.version }}-darwin-${{ matrix.arch }}"
if [[ -n "${{ matrix.legacy_name }}" ]]; then
DIR_NAME="${DIR_NAME}-legacy-${{ matrix.legacy_name }}"
fi
echo "DIR_NAME=${DIR_NAME}" >> "${GITHUB_ENV}"
- name: Archive
run: |
set -xeuo pipefail
cd dist
mkdir -p "${DIR_NAME}"
cp ../LICENSE "${DIR_NAME}"
cp sing-box "${DIR_NAME}"
tar -czvf "${DIR_NAME}.tar.gz" "${DIR_NAME}"
rm -r "${DIR_NAME}"
- name: Cleanup
run: rm dist/sing-box
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binary-darwin_${{ matrix.arch }}${{ matrix.legacy_name && format('-legacy-{0}', matrix.legacy_name) }}
path: "dist"
build_android:
name: Build Android
if: github.event_name != 'workflow_dispatch' || inputs.build == 'All' || inputs.build == 'Android'
Expand Down Expand Up @@ -619,6 +686,7 @@ jobs:
needs:
- calculate_version
- build
- build_darwin
- build_android
- build_apple
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.24.6
go-version: ^1.25
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,14 @@ jobs:
- name: Set build tags
run: |
set -xeuo pipefail
TAGS='with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale'
TAGS='with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale,with_ccm,badlinkname,tfogo_checklinkname0'
echo "BUILD_TAGS=${TAGS}" >> "${GITHUB_ENV}"
- name: Build
run: |
set -xeuo pipefail
mkdir -p dist
go build -v -trimpath -o dist/sing-box -tags "${BUILD_TAGS}" \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }}' \
-ldflags '-s -buildid= -X github.com/sagernet/sing-box/constant.Version=${{ needs.calculate_version.outputs.version }} -checklinkname=0' \
./cmd/sing-box
env:
CGO_ENABLED: "0"
Expand Down
2 changes: 1 addition & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: "2"
run:
go: "1.24"
go: "1.25"
build-tags:
- with_gvisor
- with_quic
Expand Down
103 changes: 0 additions & 103 deletions .goreleaser.fury.yaml

This file was deleted.

Loading