vps의 OS:
uname -a
Linux vultr.guest 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux
이런 식으로 내 vps에tinyproxy와 kcptun을 구축했습니다.
작은프록시
apt-get install tinyproxy
touch /run/tinyproxy/tinyproxy.pid
모든 기본 설정을 유지합니다.
systemctl start tinyproxy
systemctl status tinyproxy
● tinyproxy.service - Tinyproxy lightweight HTTP Proxy
Loaded: loaded (/lib/systemd/system/tinyproxy.service; enabled; vendor preset
Active: active (running)
tinyproxy
상태가 양호하고 바로 사용할 수 있습니다.
kcptun 서버측
kcptun 서버 측을 가져옵니다.
wget https://github.com/xtaci/kcptun/releases/download/v20200226/kcptun-linux-amd64-20200226.tar.gz
tar -zxf kcptun-linux-amd64-20200226.tar.gz
cp server_linux_amd64 /usr/bin/server_linux_amd64
kcptun 서버에 대한 서비스를 만듭니다.
vi /etc/systemd/system/kcptun.service
[Unit]
Description=Kcptun server
Requires=network.target
After=network-online.target
[Service]
Type=simple
User=nobody
RemainAfterExit=yes
ExecStart=/usr/bin/server_linux_amd64 -c /etc/kcptun/conf.json > /tmp/kcptun.log 2>&1
ExecReload=/usr/bin/kill -HUP $MAINPID
RestartSec=1min
Restart=on-failure
[Install]
WantedBy=multi-user.target
kcptun 서버측 구성 파일을 설정합니다.
vim /etc/kcptun/conf.json
{
"listen": ":20000",
"target": "127.0.0.1:8888",
"key": "xxxxxxxx",
"crypt": "salsa20",
"mode": "normal",
"mtu": 1400,
"sndwnd": 2048,
"rcvwnd": 2048,
"datashard": 10,
"parityshard": 3,
"dscp": 46,
"nocomp": true,
"acknodelay": false,
"nodelay": 1,
"interval": 40,
"resend": 2,
"nc": 1,
"sockbuf": 16777217,
"smuxver": 1,
"smuxbuf": 16777217,
"streambuf": 2097152,
"keepalive": 10,
"pprof":false,
"quiet":false,
"tcp":false
}
8888
Tinyproxy의 포트는 20000
kcptun 서버와 kcptun 클라이언트 간의 연결을 위한 포트입니다.
에 대한 포트를 엽니다 20000
.
firewall-cmd --zone=public --add-port=20000/udp --permanent
firewall-cmd --reload
Sart kcptun 서버.
systemctl start kcptun
systemctl status kcptun
● kcptun.service - Kcptun server
Loaded: loaded (/etc/systemd/system/kcptun.service; disabled; vendor preset:
Active: active (running) since Sun 2020-03-08 08:14:26 UTC; 58min ago
Main PID: 2082 (server_linux_am)
Tasks: 6 (limit: 4915)
CGroup: /system.slice/kcptun.service
└─2082 /usr/bin/server_linux_amd64 -c /etc/kcptun/conf.json
상태는 양호합니다.
kcptun 클라이언트 측
내 로컬 PC에서는 vps에 kcptun 서버를 설정하는 것과 거의 동일합니다.
kcptun을 받으세요.
wget https://github.com/xtaci/kcptun/releases/download/v20200226/kcptun-linux-amd64-20200226.tar.gz
tar -zxf kcptun-linux-amd64-20200226.tar.gz
kcptun 클라이언트에 대한 서비스를 만듭니다.
vim /etc/systemd/system/kcptun.service
[Unit]
Description=kcptun
Wants=basic.target
After=basic.target network.target
[Service]
User=nobody
Group=nogroup
ProtectSystem=full
ExecStart=/home/debian/client_linux_amd64 -c /home/debian/config.json > /tmp/kcptun.log 2>&1
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
StandardOutput=syslog
StandardError=syslog
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
구성 파일을 설정합니다.
vim config.json
{
"localaddr": "127.0.0.1:8123",
"remoteaddr": "vps_ip:20000",
"key": "xxxxxxxx",
"crypt": "salsa20",
"mode": "normal",
"dscp": 46,
"sockbuf": 16777217,
"smuxver": 2,
"streambuf": 2097152,
"nocomp": true
}
내 브라우저(firefox,127.0.0.1, 포트 8123)에 프록시를 설정합니다.
kcptun 클라이언트 서비스를 시작합니다.
systemctl start kcptun
systemctl status kcptun
● kcptun.service - kcptun
Loaded: loaded (/etc/systemd/system/kcptun.service; disabled; vendor preset:
Active: active (running)
상태도 양호합니다. 웹페이지를 열 수 없습니다 firefox(8123)--kcptun client(27107)--(27107)kcptun server(8888)--tinyproxy(8888)--target webpage
. 포트를 확인하세요.
lsof -i :20000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
server_li 4363 nobody 6u IPv6 23318 0t0 UDP *:20000
항구 상태는 양호합니다. 클라이언트 측과 서버 측 모두에 대한 로그 파일이 없습니다.
서버 측에서:
cat /tmp/kcptun.log
출력으로는 아무것도 없습니다.
클라이언트 측에서:
cat /tmp/kcptun.log
출력으로는 아무것도 없습니다.
답변1
1. Firefox에서 http 및 https 프록시를 설정합니다.
2. vps 서버 측에 config.json을 설정합니다.
vim /etc/kcptun/config.json
{
"listen": ":20000",
"target": "127.0.0.1:8888",
"key": "xxxxxxxx",
"crypt": "salsa20",
"mode": "normal",
"dscp": 46,
"sockbuf": 16777217,
"smuxver": 2,
"streambuf": 2097152,
"nocomp": true
}