forked from ms/transocks
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
22397c6815 | |||
7bfa2786db | |||
6fdd75fbb0 | |||
c692b8881d | |||
ffbd6b14fa | |||
13a9bd1aa1 | |||
26ac2ef39c | |||
4b36ccffaa | |||
9792ba4376 | |||
ba1b89b252 | |||
1dff7ec332 | |||
c429f40125 |
@ -40,28 +40,41 @@ jobs:
|
||||
with:
|
||||
version: v1.60
|
||||
|
||||
- name: build amd64
|
||||
- name: build linux amd64
|
||||
id: build-amd64
|
||||
run: |
|
||||
echo "ARTIFACT=transocks-$(make version)_$(go env GOOS)-amd64" >> $GITHUB_OUTPUT
|
||||
GOARCH=amd64 make clean build
|
||||
|
||||
- name: upload amd64
|
||||
- name: upload linux amd64
|
||||
uses: https://git.mousesoft.ru/actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.build-amd64.outputs.ARTIFACT }}
|
||||
path: out/bin/*
|
||||
overwrite: true
|
||||
|
||||
- name: build arm64
|
||||
- name: build linux arm64
|
||||
id: build-arm64
|
||||
run: |
|
||||
echo "ARTIFACT=transocks-$(make version)_$(go env GOOS)-arm64" >> $GITHUB_OUTPUT
|
||||
GOARCH=arm64 make clean build
|
||||
|
||||
- name: upload arm64
|
||||
- name: upload linux arm64
|
||||
uses: https://git.mousesoft.ru/actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.build-arm64.outputs.ARTIFACT }}
|
||||
path: out/bin/*
|
||||
overwrite: true
|
||||
|
||||
- name: build linux arm32
|
||||
id: build-arm32
|
||||
run: |
|
||||
echo "ARTIFACT=transocks-$(make version)_$(go env GOOS)-arm32" >> $GITHUB_OUTPUT
|
||||
GOARCH=arm make clean build
|
||||
|
||||
- name: upload linux arm32
|
||||
uses: https://git.mousesoft.ru/actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.build-arm32.outputs.ARTIFACT }}
|
||||
path: out/bin/*
|
||||
overwrite: true
|
||||
|
@ -10,11 +10,6 @@ on:
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.meta.outputs.VERSION }}
|
||||
changes: ${{ steps.meta.outputs.CHANGES }}
|
||||
artifact_amd64: ${{ steps.build-amd.outputs.ARTIFACT }}
|
||||
artifact_arm64: ${{ steps.build-arm.outputs.ARTIFACT }}
|
||||
steps:
|
||||
- name: check-out
|
||||
uses: https://git.mousesoft.ru/actions/checkout@v4
|
||||
@ -27,20 +22,6 @@ jobs:
|
||||
with:
|
||||
go-version: ">=1.22"
|
||||
|
||||
- name: meta
|
||||
id: meta
|
||||
env:
|
||||
SSH_HOST: ${{ secrets.DEB_SSH_HOST }}
|
||||
run: |
|
||||
echo "VERSION=$(make version)" >> $GITHUB_OUTPUT
|
||||
echo 'CHANGES<<EOF' >> $GITHUB_OUTPUT
|
||||
gawk -f scripts/changes.awk -v version=$(make version-number) CHANGELOG.md >> $GITHUB_OUTPUT
|
||||
echo EOF >> $GITHUB_OUTPUT
|
||||
mkdir -p out
|
||||
sed -e "s/DEB_SSH_HOST/$SSH_HOST/g" deploy/dput/mousesoft.json.tpl > out/mousesoft.json
|
||||
mkdir -p /etc/dput.d/profiles
|
||||
cp out/mousesoft.json /etc/dput.d/profiles/
|
||||
|
||||
- name: set-up dependencies
|
||||
run: |
|
||||
go install github.com/kisielk/errcheck@latest
|
||||
@ -57,14 +38,29 @@ jobs:
|
||||
with:
|
||||
version: v1.60
|
||||
|
||||
- name: build amd64
|
||||
id: build-amd64
|
||||
- name: build linux amd64
|
||||
run: GOARCH=amd64 make build pkg-deb
|
||||
|
||||
- name: build arm64
|
||||
id: build-arm64
|
||||
- name: build linux arm64
|
||||
run: GOARCH=arm64 make build pkg-deb
|
||||
|
||||
- name: build linux arm32
|
||||
run: GOARCH=arm make build pkg-deb
|
||||
|
||||
- name: meta
|
||||
id: meta
|
||||
env:
|
||||
SSH_HOST: ${{ secrets.DEB_SSH_HOST }}
|
||||
run: |
|
||||
echo "VERSION=$(make version)" >> $GITHUB_OUTPUT
|
||||
echo 'CHANGES<<EOF' >> $GITHUB_OUTPUT
|
||||
gawk -f scripts/changes.awk -v version=$(make version-number) CHANGELOG.md >> $GITHUB_OUTPUT
|
||||
echo EOF >> $GITHUB_OUTPUT
|
||||
mkdir -p out
|
||||
sed -e "s/DEB_SSH_HOST/$SSH_HOST/g" deploy/dput/mousesoft.json.tpl > out/mousesoft.json
|
||||
mkdir -p /etc/dput.d/profiles
|
||||
cp out/mousesoft.json /etc/dput.d/profiles/
|
||||
|
||||
- name: deploy packages
|
||||
env:
|
||||
SSH_HOST: ${{ secrets.DEB_SSH_HOST }}
|
||||
|
10
CHANGELOG.md
10
CHANGELOG.md
@ -2,6 +2,16 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [1.1.4](https://git.mousesoft.ru/alexey/transocks/releases/tag/v1.1.4) - 2024-11-05
|
||||
|
||||
- **Fixed**
|
||||
- Bug in method `Server.handleConnection`.
|
||||
|
||||
## [1.1.3](https://git.mousesoft.ru/alexey/transocks/releases/tag/v1.1.3) - 2024-11-03
|
||||
|
||||
- **Added**
|
||||
- Build linux-arm32 package.
|
||||
|
||||
## [1.1.2](https://git.mousesoft.ru/alexey/transocks/releases/tag/v1.1.2) - 2024-11-02
|
||||
|
||||
- **Added**
|
||||
|
31
Dockerfile
31
Dockerfile
@ -1,31 +0,0 @@
|
||||
# Start by building the application.
|
||||
FROM docker.io/golang:1.22 AS build
|
||||
|
||||
WORKDIR /usr/src/transocks
|
||||
COPY . .
|
||||
|
||||
RUN CGO_ENABLED=0 go build -trimpath -o transocks ./cmd/transocks
|
||||
|
||||
# Now copy it into our base image.
|
||||
FROM gcr.io/distroless/static-debian12:nonroot
|
||||
|
||||
COPY --from=build /usr/src/transocks/transocks /usr/bin/transocks
|
||||
|
||||
VOLUME [ "/etc/transocks" ]
|
||||
ENTRYPOINT [ "/usr/bin/transocks" ]
|
||||
|
||||
ARG IMAGE_CREATED
|
||||
ARG IMAGE_VERSION
|
||||
ARG IMAGE_REVISION
|
||||
|
||||
LABEL org.opencontainers.image.created="${IMAGE_CREATED}" \
|
||||
org.opencontainers.image.authors="MouseSoft" \
|
||||
org.opencontainers.image.url="https://git.mousesoft.ru/alexey/transocks" \
|
||||
org.opencontainers.image.documentation="https://git.mousesoft.ru/alexey/transocks/src/branch/master/README.md" \
|
||||
org.opencontainers.image.source="https://git.mousesoft.ru/alexey/transocks" \
|
||||
org.opencontainers.image.version="${IMAGE_VERSION}" \
|
||||
org.opencontainers.image.revision="${IMAGE_REVISION}" \
|
||||
org.opencontainers.image.vendor="MouseSoft" \
|
||||
org.opencontainers.image.licenses="MIT" \
|
||||
org.opencontainers.image.title="transocks - a transparent SOCKS5/HTTP proxy" \
|
||||
org.opencontainers.image.description="transocks is a background service to redirect TCP connections transparently to a SOCKS5 server or a HTTP proxy server like Squid."
|
10
configs/transocks.example.toml
Normal file
10
configs/transocks.example.toml
Normal file
@ -0,0 +1,10 @@
|
||||
# listening address of transocks.
|
||||
listen = "localhost:1081" # default is "localhost:1081"
|
||||
|
||||
#proxy_url = "socks5://10.20.30.40:1080" # for SOCKS5 server
|
||||
#proxy_url = "http://10.20.30.40:3128" # for HTTP proxy server
|
||||
|
||||
[log]
|
||||
#filename = "/path/to/file" # default to stderr
|
||||
level = "info" # critical", error, warning, info, debug
|
||||
#format = "json" # plain, logfmt, json
|
32
makefile
32
makefile
@ -33,6 +33,11 @@ DIST_EXT := .tar.gz
|
||||
DIST_OPTS := -czf
|
||||
PKG_NAME := $(PROJECT_ID)_$(VERSION)_$(GOOS)-$(GOARCH)
|
||||
DIST_FILE := $(PKG_NAME)$(DIST_EXT)
|
||||
PKG_ARCH := $(GOARCH)
|
||||
|
||||
ifeq ($(PKG_ARCH),arm)
|
||||
PKG_ARCH = armhf
|
||||
endif
|
||||
|
||||
GREEN := $(shell tput -Txterm setaf 2)
|
||||
YELLOW := $(shell tput -Txterm setaf 3)
|
||||
@ -85,28 +90,29 @@ dist: ## Create binary distro package
|
||||
@$(ECHO_CMD) "Dist\t\t${GREEN}[OK]${RESET}"
|
||||
.PHONY:dist
|
||||
|
||||
DEB_NAME := $(PROJECT_ID)_$(VERSION_NUMBER)-1_$(GOARCH)
|
||||
DEB_NAME := $(PROJECT_ID)_$(VERSION_NUMBER)-1_$(PKG_ARCH)
|
||||
|
||||
pkg-deb: ## Build debian package
|
||||
@rm -rf $(TMPDIR)
|
||||
@mkdir -p $(TMPDIR)/$(DEB_NAME)/usr/bin
|
||||
@mkdir -p $(TMPDIR)/$(DEB_NAME)/debian
|
||||
@mkdir -p $(TMPDIR)/$(DEB_NAME)/DEBIAN
|
||||
@mkdir -p $(TMPDIR)/$(DEB_NAME)/etc
|
||||
@mkdir -p $(TMPDIR)/$(DEB_NAME)/usr/bin
|
||||
@cp $(CURDIR)/configs/transocks.example.toml $(TMPDIR)/$(DEB_NAME)/etc/transocks.toml
|
||||
@cp -a $(BINDIR)/* $(TMPDIR)/$(DEB_NAME)/usr/bin/
|
||||
@sed -e "s/VERSION/$(VERSION_NUMBER)/g" \
|
||||
$(CURDIR)/build/package/debian/changelog.tpl \
|
||||
> $(TMPDIR)/$(DEB_NAME)/changelog
|
||||
@sed -e "s/ARCH/$(GOARCH)/g" $(CURDIR)/build/package/debian/control.tpl \
|
||||
> $(TMPDIR)/$(DEB_NAME)/control
|
||||
DEB_HOST_ARCH=$(GOARCH) dpkg-gencontrol -v$(VERSION_NUMBER)-1 \
|
||||
-c$(TMPDIR)/$(DEB_NAME)/control \
|
||||
-l$(TMPDIR)/$(DEB_NAME)/changelog \
|
||||
-f$(TMPDIR)/$(DEB_NAME)/debian/files -Ptmp/$(DEB_NAME)
|
||||
> $(TMPDIR)/changelog
|
||||
@sed -e "s/ARCH/$(PKG_ARCH)/g" $(CURDIR)/build/package/debian/control.tpl \
|
||||
> $(TMPDIR)/control
|
||||
DEB_HOST_ARCH=$(PKG_ARCH) dpkg-gencontrol -v$(VERSION_NUMBER)-1 \
|
||||
-c$(TMPDIR)/control \
|
||||
-l$(TMPDIR)/changelog \
|
||||
-f$(TMPDIR)/$(DEB_NAME)/DEBIAN/files -Ptmp/$(DEB_NAME)
|
||||
dpkg-deb --build --root-owner-group $(TMPDIR)/$(DEB_NAME)
|
||||
dpkg-genchanges --build=binary \
|
||||
-c$(TMPDIR)/$(DEB_NAME)/control \
|
||||
-l$(TMPDIR)/$(DEB_NAME)/changelog \
|
||||
-f$(TMPDIR)/$(DEB_NAME)/debian/files \
|
||||
-c$(TMPDIR)/control \
|
||||
-l$(TMPDIR)/changelog \
|
||||
-f$(TMPDIR)/$(DEB_NAME)/DEBIAN/files \
|
||||
-u$(TMPDIR) -O$(OUTDIR)/$(DEB_NAME).changes
|
||||
@mv $(TMPDIR)/*.deb $(OUTDIR)/
|
||||
@$(ECHO_CMD) "pkg-deb\t\t${GREEN}[OK]${RESET}"
|
||||
|
@ -144,10 +144,11 @@ func (s *Server) handleConnection(ctx context.Context, conn net.Conn) {
|
||||
if err != nil {
|
||||
fields[log.FnError] = err.Error()
|
||||
_ = s.logger.Warn("peekHTTP failed", fields)
|
||||
} else {
|
||||
if err == nil && host != "" {
|
||||
addr = host + addr[strings.Index(addr, ":"):]
|
||||
} else if host != "" {
|
||||
if strings.Contains(host, ":") {
|
||||
host = host[:strings.Index(host, ":")]
|
||||
}
|
||||
addr = host + addr[strings.Index(addr, ":"):]
|
||||
}
|
||||
reader = reader_n3
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user