Compare commits

...

12 Commits

Author SHA1 Message Date
22397c6815
В deb пакет добавлен файл конфигурации.
All checks were successful
build / build (push) Successful in 1m28s
release / release (push) Successful in 1m10s
2024-11-06 07:38:55 +07:00
7bfa2786db
Исправлена сборка debian-пакеьа.
All checks were successful
build / build (push) Successful in 1m29s
2024-11-06 02:44:28 +07:00
6fdd75fbb0
updated changelog
All checks were successful
build / build (push) Successful in 1m50s
release / release (push) Successful in 1m29s
2024-11-05 14:34:30 +07:00
c692b8881d
Исправлен баг в методе Server.handleConnection
Some checks failed
build / build (push) Has been cancelled
2024-11-05 14:33:11 +07:00
ffbd6b14fa
Fixed bug "too many colons in address".
All checks were successful
build / build (push) Successful in 1m25s
2024-11-04 15:13:12 +07:00
13a9bd1aa1
Исправлены опечатки в makefile.
All checks were successful
build / build (push) Successful in 2m15s
release / release (push) Successful in 1m18s
2024-11-03 19:14:10 +07:00
26ac2ef39c
Исправлена опечатка в makefile.
Some checks failed
release / release (push) Failing after 1m23s
build / build (push) Successful in 2m17s
2024-11-03 19:10:55 +07:00
4b36ccffaa
Изменена сборка пакета для arm32
Some checks failed
build / build (push) Successful in 1m46s
release / release (push) Failing after 1m20s
2024-11-03 19:05:52 +07:00
9792ba4376
update changelog
All checks were successful
release / release (push) Successful in 1m35s
build / build (push) Successful in 1m50s
2024-11-03 18:28:40 +07:00
ba1b89b252
Исправлена сборка пакета для linux arm32.
All checks were successful
build / build (push) Successful in 1m28s
2024-11-03 18:22:22 +07:00
1dff7ec332
В сборку добавлен пакет linux arm32.
Some checks failed
build / build (push) Failing after 1m16s
2024-11-03 18:15:02 +07:00
c429f40125
Оптимизирован release workflow
All checks were successful
build / build (push) Successful in 1m13s
2024-11-02 21:40:14 +07:00
7 changed files with 79 additions and 74 deletions

View File

@ -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

View File

@ -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 }}

View File

@ -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**

View File

@ -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."

View 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

View File

@ -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}"

View File

@ -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
}