Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
6e8c975859
@ -1,8 +1,8 @@
|
|||||||
FROM golang AS build-env
|
FROM golang AS build-env
|
||||||
|
|
||||||
RUN go get -u github.com/esrrhs/pingtunnel
|
RUN GO111MODULE=off go get -u github.com/esrrhs/pingtunnel
|
||||||
RUN go get -u github.com/esrrhs/pingtunnel/...
|
RUN GO111MODULE=off go get -u github.com/esrrhs/pingtunnel/...
|
||||||
RUN go install github.com/esrrhs/pingtunnel
|
RUN GO111MODULE=off go install github.com/esrrhs/pingtunnel
|
||||||
|
|
||||||
FROM debian
|
FROM debian
|
||||||
COPY --from=build-env /go/bin/pingtunnel .
|
COPY --from=build-env /go/bin/pingtunnel .
|
||||||
|
164
README.md
164
README.md
@ -7,167 +7,83 @@
|
|||||||
[<img src="https://img.shields.io/github/downloads/esrrhs/pingtunnel/total">](https://github.com/esrrhs/pingtunnel/releases)
|
[<img src="https://img.shields.io/github/downloads/esrrhs/pingtunnel/total">](https://github.com/esrrhs/pingtunnel/releases)
|
||||||
[<img src="https://img.shields.io/docker/pulls/esrrhs/pingtunnel">](https://hub.docker.com/repository/docker/esrrhs/pingtunnel)
|
[<img src="https://img.shields.io/docker/pulls/esrrhs/pingtunnel">](https://hub.docker.com/repository/docker/esrrhs/pingtunnel)
|
||||||
[<img src="https://img.shields.io/github/workflow/status/esrrhs/pingtunnel/Go">](https://github.com/esrrhs/pingtunnel/actions)
|
[<img src="https://img.shields.io/github/workflow/status/esrrhs/pingtunnel/Go">](https://github.com/esrrhs/pingtunnel/actions)
|
||||||
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a200bca59d1b4ca7a9c2cdb564508b47)](https://www.codacy.com/manual/esrrhs/pingtunnel?utm_source=github.com&utm_medium=referral&utm_content=esrrhs/pingtunnel&utm_campaign=Badge_Grade)
|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a200bca59d1b4ca7a9c2cdb564508b47)](https://www.codacy.com/manual/esrrhs/pingtunnel?utm_source=github.com&utm_medium=referral&utm_content=esrrhs/pingtunnel&utm_campaign=Badge_Grade)
|
||||||
|
|
||||||
pingtunnel是把tcp/udp/sock5流量伪装成icmp流量进行转发的工具。用于突破网络封锁,或是绕过WIFI网络的登陆验证,或是在某些网络加快网络传输速度。
|
pingtunnel 是把 tcp/udp/sock5 流量伪装成 icmp 流量进行转发的工具
|
||||||
|
|
||||||
[Readme EN](./README_EN.md)
|
[Readme EN](./README_EN.md)
|
||||||
|
|
||||||
**注意:本工具只是用作学习研究,请勿用于非法用途!**
|
## 注意:本工具只是用作学习研究,请勿用于非法用途!!!
|
||||||
|
|
||||||
![image](network.jpg)
|
![image](network.jpg)
|
||||||
|
|
||||||
# 功能
|
## 使用
|
||||||
* 某些服务器的tcp、udp流量被禁止,可以通过pingtunnel绕过。
|
|
||||||
* 某些场合如学校、咖啡厅、机场,需要登录跳转验证,可以通过pingtunnel绕过。
|
|
||||||
* 某些网络,tcp、udp传输很慢,可以通过pingtunnel加速网络。
|
|
||||||
|
|
||||||
# 使用
|
|
||||||
### 安装服务端
|
### 安装服务端
|
||||||
* 首先准备好一个具有公网ip的服务器,如AWS上的EC2,假定域名或者公网ip是www.yourserver.com
|
|
||||||
* 从[releases](https://github.com/esrrhs/pingtunnel/releases)下载对应的安装包,如pingtunnel_linux64.zip,然后解压,以**root**权限执行
|
- 首先准备好一个具有公网 ip 的服务器,假定域名或者公网 ip 是www.yourserver.com
|
||||||
|
- 从[releases](https://github.com/esrrhs/pingtunnel/releases)下载对应的安装包,如 pingtunnel_linux64.zip,然后解压,以**root**权限执行
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo wget (最新release的下载链接)
|
sudo wget (最新release的下载链接)
|
||||||
sudo unzip pingtunnel_linux64.zip
|
sudo unzip pingtunnel_linux64.zip
|
||||||
sudo ./pingtunnel -type server
|
sudo ./pingtunnel -type server
|
||||||
```
|
```
|
||||||
* (可选)关闭系统默认的ping
|
|
||||||
|
- (可选)关闭系统默认的 ping
|
||||||
|
|
||||||
```
|
```
|
||||||
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
|
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
|
||||||
```
|
```
|
||||||
### 安装GUI客户端(新手推荐)
|
|
||||||
* 从[pingtunnel-qt](https://github.com/esrrhs/pingtunnel-qt)下载qt的gui版本
|
### 安装 GUI 客户端(新手推荐)
|
||||||
* 双击exe运行,修改server(如www.yourserver.com)、listen port(如1080),勾上sock5,其他设置默认即可,然后点击*GO*
|
|
||||||
* 一切正常,界面上会有ping值显示,然后可点击X隐藏到状态栏
|
- 从[pingtunnel-qt](https://github.com/esrrhs/pingtunnel-qt)下载 qt 的 gui 版本
|
||||||
* 设置浏览器的sock5代理到127.0.0.1:1080,如果连不上网,出现socks version not supported错误日志,说明浏览器的代理不是socks5代理。如果提示非安全连接,说明dns有问题,勾上浏览器的【使用socks5代理DNS查询】,或者参考[yellowdns](https://github.com/esrrhs/yellowdns)
|
- 双击 exe 运行,修改 server(如www.yourserver.com)、listen port(如 1080),勾上 sock5,其他设置默认即可,然后点击*GO*
|
||||||
|
- 一切正常,界面上会有 ping 值显示,然后可点击 X 隐藏到状态栏
|
||||||
|
- 设置浏览器的 sock5 代理到 127.0.0.1:1080,如果连不上网,出现 socks version not supported 错误日志,说明浏览器的代理不是 socks5 代理。如果提示非安全连接,说明 dns 有问题,勾上浏览器的【使用 socks5 代理 DNS 查询】
|
||||||
|
|
||||||
![image](qtrun.jpg)
|
![image](qtrun.jpg)
|
||||||
|
|
||||||
### 安装客户端(高玩推荐)
|
### 安装客户端(高玩推荐)
|
||||||
* 从[releases](https://github.com/esrrhs/pingtunnel/releases)下载对应的安装包,如pingtunnel_windows64.zip,解压
|
|
||||||
* 然后用**管理员权限**运行,不同的转发功能所对应的命令如下
|
- 从[releases](https://github.com/esrrhs/pingtunnel/releases)下载对应的安装包,如 pingtunnel_windows64.zip,解压
|
||||||
* 如果看到有ping pong的log,说明连接正常
|
- 然后用**管理员权限**运行,不同的转发功能所对应的命令如下
|
||||||
##### 转发sock5
|
- 如果看到有 ping pong 的 log,说明连接正常
|
||||||
|
|
||||||
|
#### 转发 sock5
|
||||||
|
|
||||||
```
|
```
|
||||||
pingtunnel.exe -type client -l :4455 -s www.yourserver.com -sock5 1
|
pingtunnel.exe -type client -l :4455 -s www.yourserver.com -sock5 1
|
||||||
```
|
```
|
||||||
##### 转发tcp
|
|
||||||
|
#### 转发 tcp
|
||||||
|
|
||||||
```
|
```
|
||||||
pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
|
pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
|
||||||
```
|
```
|
||||||
##### 转发udp
|
|
||||||
|
#### 转发 udp
|
||||||
|
|
||||||
```
|
```
|
||||||
pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455
|
pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455
|
||||||
```
|
```
|
||||||
|
|
||||||
### Docker
|
### Docker(高玩推荐)
|
||||||
server:
|
也可直接用docker启动,更方便。参数同上
|
||||||
|
- server:
|
||||||
```
|
```
|
||||||
docker run --name pingtunnel-server -d --privileged --network host --restart=always esrrhs/pingtunnel ./pingtunnel -type server -key 123456
|
docker run --name pingtunnel-server -d --privileged --network host --restart=always esrrhs/pingtunnel ./pingtunnel -type server -key 123456
|
||||||
```
|
```
|
||||||
client:
|
- client:
|
||||||
```
|
```
|
||||||
docker run --name pingtunnel-client -d --restart=always -p 1080:1080 esrrhs/pingtunnel ./pingtunnel -type client -l :1080 -s www.yourserver.com -sock5 1 -key 123456
|
docker run --name pingtunnel-client -d --restart=always -p 1080:1080 esrrhs/pingtunnel ./pingtunnel -type client -l :1080 -s www.yourserver.com -sock5 1 -key 123456
|
||||||
```
|
```
|
||||||
|
|
||||||
# 效果
|
## 效果
|
||||||
下载centos镜像 [centos mirror](http://mirrors.ocf.berkeley.edu/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso)
|
|
||||||
|
|
||||||
直接wget、通过shadowsocks wget、通过kcptun wget、通过pingtunnel wget的结果如下
|
下载 centos 镜像 [centos mirror](http://mirrors.ocf.berkeley.edu/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso),对比如下
|
||||||
|
|
||||||
| | wget | shaowsocks | kcptun | pingtunnel |
|
|
||||||
|--------------|----------|------------|------------|------------|
|
|
||||||
| 阿里云 | 26.6KB/s | 31.8KB/s | 606KB/s |5.64MB/s|
|
|
||||||
|
|
||||||
可以看到加速效果基本上**200倍**。
|
|
||||||
|
|
||||||
# 下载
|
|
||||||
cmd: https://github.com/esrrhs/pingtunnel/releases
|
|
||||||
|
|
||||||
QT GUI: https://github.com/esrrhs/pingtunnel-qt
|
|
||||||
|
|
||||||
# Stargazers over time
|
|
||||||
|
|
||||||
[![Stargazers over time](https://starchart.cc/esrrhs/pingtunnel.svg)](https://starchart.cc/esrrhs/pingtunnel)
|
|
||||||
|
|
||||||
# 其他
|
|
||||||
#### 路由器使用
|
|
||||||
参考[yellowsocks](https://github.com/esrrhs/yellowsocks)的使用
|
|
||||||
#### 手机端使用
|
|
||||||
建议套用其他协议使用,如phone client->pingtunnel client->pingtunnel server->phone server
|
|
||||||
|
|
||||||
# Usage
|
|
||||||
通过伪造ping,把tcp/udp/sock5流量通过远程服务器转发到目的服务器上。用于突破某些运营商封锁TCP/UDP流量。
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
|
|
||||||
// server
|
|
||||||
pingtunnel -type server
|
|
||||||
|
|
||||||
// client, Forward udp
|
|
||||||
pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -t SERVER_IP:4455
|
|
||||||
|
|
||||||
// client, Forward tcp
|
|
||||||
pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -t SERVER_IP:4455 -tcp 1
|
|
||||||
|
|
||||||
// client, Forward sock5, implicitly open tcp, so no target server is needed
|
|
||||||
pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -sock5 1
|
|
||||||
|
|
||||||
-type 服务器或者客户端
|
|
||||||
|
|
||||||
服务器参数:
|
|
||||||
|
|
||||||
-key 设置的密码,默认0
|
|
||||||
|
|
||||||
-nolog 不写日志文件,只打印标准输出,默认0
|
|
||||||
|
|
||||||
-noprint 不打印屏幕输出,默认0
|
|
||||||
|
|
||||||
-loglevel 日志文件等级,默认info
|
|
||||||
|
|
||||||
-maxconn 最大连接数,默认0,不受限制
|
|
||||||
|
|
||||||
-maxprt server最大处理线程数,默认100
|
|
||||||
|
|
||||||
-maxprb server最大处理线程buffer数,默认1000
|
|
||||||
|
|
||||||
-conntt server发起连接到目标地址的超时时间,默认1000ms
|
|
||||||
|
|
||||||
客户端参数:
|
|
||||||
|
|
||||||
-l 本地的地址,发到这个端口的流量将转发到服务器
|
|
||||||
|
|
||||||
-s 服务器的地址,流量将通过隧道转发到这个服务器
|
|
||||||
|
|
||||||
-t 远端服务器转发的目的地址,流量将转发到这个地址
|
|
||||||
|
|
||||||
-timeout 本地记录连接超时的时间,单位是秒,默认60s
|
|
||||||
|
|
||||||
-key 设置的密码,默认0
|
|
||||||
|
|
||||||
-tcp 设置是否转发tcp,默认0
|
|
||||||
|
|
||||||
-tcp_bs tcp的发送接收缓冲区大小,默认1MB
|
|
||||||
|
|
||||||
-tcp_mw tcp的最大窗口,默认10000
|
|
||||||
|
|
||||||
-tcp_rst tcp的超时发送时间,默认400ms
|
|
||||||
|
|
||||||
-tcp_gz 当数据包超过这个大小,tcp将压缩数据,0表示不压缩,默认0
|
|
||||||
|
|
||||||
-tcp_stat 打印tcp的监控,默认0
|
|
||||||
|
|
||||||
-nolog 不写日志文件,只打印标准输出,默认0
|
|
||||||
|
|
||||||
-noprint 不打印屏幕输出,默认0
|
|
||||||
|
|
||||||
-loglevel 日志文件等级,默认info
|
|
||||||
|
|
||||||
-sock5 开启sock5转发,默认0
|
|
||||||
|
|
||||||
-profile 在指定端口开启性能检测,默认0不开启
|
|
||||||
|
|
||||||
-s5filter sock5模式设置转发过滤,默认全转发,设置CN代表CN地区的直连不转发
|
|
||||||
|
|
||||||
-s5ftfile sock5模式转发过滤的数据文件,默认读取当前目录的GeoLite2-Country.mmdb
|
|
||||||
|
|
||||||
|
| | wget | ss | kcp | pingtunnel |
|
||||||
|
| ------ | -------- | -------- | ------- | ---------- |
|
||||||
|
| 阿里云 | 26.6KB/s | 31.8KB/s | 606KB/s | 5.64MB/s |
|
||||||
|
164
README_EN.md
164
README_EN.md
@ -7,161 +7,81 @@
|
|||||||
[<img src="https://img.shields.io/github/downloads/esrrhs/pingtunnel/total">](https://github.com/esrrhs/pingtunnel/releases)
|
[<img src="https://img.shields.io/github/downloads/esrrhs/pingtunnel/total">](https://github.com/esrrhs/pingtunnel/releases)
|
||||||
[<img src="https://img.shields.io/docker/pulls/esrrhs/pingtunnel">](https://hub.docker.com/repository/docker/esrrhs/pingtunnel)
|
[<img src="https://img.shields.io/docker/pulls/esrrhs/pingtunnel">](https://hub.docker.com/repository/docker/esrrhs/pingtunnel)
|
||||||
[<img src="https://img.shields.io/github/workflow/status/esrrhs/pingtunnel/Go">](https://github.com/esrrhs/pingtunnel/actions)
|
[<img src="https://img.shields.io/github/workflow/status/esrrhs/pingtunnel/Go">](https://github.com/esrrhs/pingtunnel/actions)
|
||||||
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a200bca59d1b4ca7a9c2cdb564508b47)](https://www.codacy.com/manual/esrrhs/pingtunnel?utm_source=github.com&utm_medium=referral&utm_content=esrrhs/pingtunnel&utm_campaign=Badge_Grade)
|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a200bca59d1b4ca7a9c2cdb564508b47)](https://www.codacy.com/manual/esrrhs/pingtunnel?utm_source=github.com&utm_medium=referral&utm_content=esrrhs/pingtunnel&utm_campaign=Badge_Grade)
|
||||||
|
|
||||||
Pingtunnel is a tool that advertises tcp/udp/sock5 traffic as icmp traffic for forwarding. Used to break through the network blockade, or to bypass the WIFI network login verification, or speed up network transmission speed on some networks.
|
Pingtunnel is a tool that advertises tcp/udp/sock5 traffic as icmp traffic for forwarding.
|
||||||
|
|
||||||
|
## Note: This tool is only to be used for study and research, do not use it for illegal purposes
|
||||||
|
|
||||||
![image](network.jpg)
|
![image](network.jpg)
|
||||||
|
|
||||||
# Why use this
|
## Usage
|
||||||
* TCP and UDP traffic of some servers are banned and can be bypassed by pingtunnel.
|
|
||||||
* In some occasions, such as schools, cafes, and airports, login jump authentication is required, which can be bypassed by pingtunnel.
|
|
||||||
* In some networks, TCP/UDP transmission is very slow. You can speed up the network through pingtunnel.
|
|
||||||
# Use
|
|
||||||
### Install server
|
### Install server
|
||||||
* First prepare a server with a public IP, such as EC2 on AWS, assuming the domain name or public IP is www.yourserver.com
|
|
||||||
* Download the corresponding installation package from [releases](https://github.com/esrrhs/pingtunnel/releases), such as pingtunnel_linux64.zip, then decompress and execute with **root** privileges
|
- First prepare a server with a public IP, such as EC2 on AWS, assuming the domain name or public IP is www.yourserver.com
|
||||||
|
- Download the corresponding installation package from [releases](https://github.com/esrrhs/pingtunnel/releases), such as pingtunnel_linux64.zip, then decompress and execute with **root** privileges
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo wget (link of latest release)
|
sudo wget (link of latest release)
|
||||||
sudo unzip pingtunnel_linux64.zip
|
sudo unzip pingtunnel_linux64.zip
|
||||||
sudo ./pingtunnel -type server
|
sudo ./pingtunnel -type server
|
||||||
```
|
```
|
||||||
* (Optional) Disable system default ping
|
|
||||||
|
- (Optional) Disable system default ping
|
||||||
|
|
||||||
```
|
```
|
||||||
echo 1> / proc / sys / net / ipv4 / icmp_echo_ignore_all
|
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
|
||||||
```
|
```
|
||||||
|
|
||||||
### Install GUI client (recommended by novices)
|
### Install GUI client (recommended by novices)
|
||||||
* Download the gui version of qt from [pingtunnel-qt](https://github.com/esrrhs/pingtunnel-qt)
|
|
||||||
* Double-click the exe to run, modify the server (such as www.yourserver.com), listen port (such as 1080), tick sock5, other settings can be default, and then click *GO*
|
- Download the gui version of qt from [pingtunnel-qt](https://github.com/esrrhs/pingtunnel-qt)
|
||||||
* Everything is normal, there will be a ping value on the interface, and then you can click X to hide it in the status bar
|
- Double-click the exe to run, modify the server (such as www.yourserver.com), listen port (such as 1080), tick sock5, other settings can be default, and then click _GO_
|
||||||
* Set the browser's sock5 proxy to 127.0.0.1:1080, If you do not connect to the Internet, a socks version not supported error log appears, indicating that the browser's proxy is not a socks5 proxy.If it prompts a non-secure connection, it means there is a problem with dns. Check "Use socks5 proxy DNS query" on the browser, or refer to [yellowdns](https://github.com/esrrhs/yellowdns)
|
- Everything is normal, there will be a ping value on the interface, and then you can click X to hide it in the status bar
|
||||||
|
- Set the browser's sock5 proxy to 127.0.0.1:1080, If you do not connect to the Internet, a socks version not supported error log appears, indicating that the browser's proxy is not a socks5 proxy.If it prompts a non-secure connection, it means there is a problem with dns. Check "Use socks5 proxy DNS query" on the browser.
|
||||||
|
|
||||||
![image](qtrun.jpg)
|
![image](qtrun.jpg)
|
||||||
|
|
||||||
### Install the client (recommended for high play)
|
### Install the client (recommended for high play)
|
||||||
* Download the corresponding installation package from [releases](https://github.com/esrrhs/pingtunnel/releases), such as pingtunnel_windows64.zip, and decompress it
|
|
||||||
* Then run with **administrator** privileges. The commands corresponding to different forwarding functions are as follows.
|
- Download the corresponding installation package from [releases](https://github.com/esrrhs/pingtunnel/releases), such as pingtunnel_windows64.zip, and decompress it
|
||||||
* If you see a log of ping pong, the connection is normal
|
- Then run with **administrator** privileges. The commands corresponding to different forwarding functions are as follows.
|
||||||
##### Forward sock5
|
- If you see a log of ping pong, the connection is normal
|
||||||
|
|
||||||
|
#### Forward sock5
|
||||||
|
|
||||||
```
|
```
|
||||||
pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -sock5 1
|
pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -sock5 1
|
||||||
```
|
```
|
||||||
##### Forward tcp
|
|
||||||
|
#### Forward tcp
|
||||||
|
|
||||||
```
|
```
|
||||||
pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
|
pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
|
||||||
```
|
```
|
||||||
##### Forward udp
|
|
||||||
|
#### Forward udp
|
||||||
|
|
||||||
```
|
```
|
||||||
pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -t www.yourserver.com:4455
|
pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -t www.yourserver.com:4455
|
||||||
```
|
```
|
||||||
|
|
||||||
### Use Docker
|
### Use Docker (recommended for high play)
|
||||||
server:
|
It can also be started directly with docker, which is more convenient. Same parameters as above
|
||||||
|
- server:
|
||||||
```
|
```
|
||||||
docker run --name pingtunnel-server -d --privileged --network host --restart = always esrrhs / pingtunnel ./pingtunnel -type server -key 123456
|
docker run --name pingtunnel-server -d --privileged --network host --restart = always esrrhs / pingtunnel ./pingtunnel -type server -key 123456
|
||||||
```
|
```
|
||||||
client:
|
- client:
|
||||||
```
|
```
|
||||||
docker run --name pingtunnel-client -d --restart = always -p 1080: 1080 esrrhs / pingtunnel ./pingtunnel -type client -l: 1080 -s www.yourserver.com -sock5 1 -key 123456
|
docker run --name pingtunnel-client -d --restart = always -p 1080: 1080 esrrhs / pingtunnel ./pingtunnel -type client -l: 1080 -s www.yourserver.com -sock5 1 -key 123456
|
||||||
```
|
```
|
||||||
|
|
||||||
# Test
|
## Test
|
||||||
download the centos image [centos mirror](http://mirrors.ocf.berkeley.edu/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso)
|
|
||||||
|
|
||||||
the results of direct wget, shadowsocks wget, kcptun wget, and pingtunnel wget are as follows.
|
download the centos image [centos mirror](http://mirrors.ocf.berkeley.edu/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso)
|
||||||
|
|
||||||
| | wget | shaowsocks | kcptun | pingtunnel |
|
| | wget | ss | kcp | pingtunnel |
|
||||||
|--------------|----------|------------|------------|------------|
|
| ------------ | -------- | -------- | ------- | ---------- |
|
||||||
| AlibabaCloud | 26.6KB/s | 31.8KB/s | 606KB/s |5.64MB/s|
|
| AlibabaCloud | 26.6KB/s | 31.8KB/s | 606KB/s | 5.64MB/s |
|
||||||
|
|
||||||
the acceleration effect is basically **200 times**.
|
|
||||||
|
|
||||||
# Download
|
|
||||||
cmd: https://github.com/esrrhs/pingtunnel/releases
|
|
||||||
|
|
||||||
QT GUI: https://github.com/esrrhs/pingtunnel-qt
|
|
||||||
|
|
||||||
# Stargazers over time
|
|
||||||
|
|
||||||
[![Stargazers over time](https://starchart.cc/esrrhs/pingtunnel.svg)](https://starchart.cc/esrrhs/pingtunnel)
|
|
||||||
|
|
||||||
# Other
|
|
||||||
#### Router use
|
|
||||||
refer to the use of [yellowsocks](https://github.com/esrrhs/yellowsocks)
|
|
||||||
#### Mobile phone use
|
|
||||||
It is recommended to use other protocols, such as phone client-> pingtunnel client-> pingtunnel server-> phone server
|
|
||||||
|
|
||||||
# Usage
|
|
||||||
By forging ping, the tcp/udp/sock5 traffic is forwarded to the destination server through the remote server. Used to break certain operators to block TCP/UDP traffic.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
|
|
||||||
// server
|
|
||||||
pingtunnel -type server
|
|
||||||
|
|
||||||
// client, Forward udp
|
|
||||||
pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -t SERVER_IP:4455
|
|
||||||
|
|
||||||
// client, Forward tcp
|
|
||||||
pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -t SERVER_IP:4455 -tcp 1
|
|
||||||
|
|
||||||
// client, Forward sock5, implicitly open tcp, so no target server is needed
|
|
||||||
pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -sock5 1
|
|
||||||
|
|
||||||
-type client or server
|
|
||||||
|
|
||||||
server param:
|
|
||||||
|
|
||||||
-key Set password, default 0
|
|
||||||
|
|
||||||
-nolog Do not write log files, only print standard output, default 0 is off
|
|
||||||
|
|
||||||
-noprint Do not print standard output, default 0 is off
|
|
||||||
|
|
||||||
-loglevel log level, default is info
|
|
||||||
|
|
||||||
-maxconn the max num of connections, default 0 is no limit
|
|
||||||
|
|
||||||
-maxprt max process thread in server, default 100
|
|
||||||
|
|
||||||
-maxprb max process thread's buffer in server, default 1000
|
|
||||||
|
|
||||||
-conntt The timeout period for the server to initiate a connection to the destination address. The default is 1000ms.
|
|
||||||
|
|
||||||
client param:
|
|
||||||
|
|
||||||
-l Local address, traffic sent to this port will be forwarded to the server
|
|
||||||
|
|
||||||
-s The address of the server, the traffic will be forwarded to this server through the tunnel
|
|
||||||
|
|
||||||
-t Destination address forwarded by the remote server, traffic will be forwarded to this address
|
|
||||||
|
|
||||||
-timeout The time when the local record connection timed out, in seconds, 60 seconds by default
|
|
||||||
|
|
||||||
-key Set password, default 0
|
|
||||||
|
|
||||||
-tcp Set the switch to forward tcp, the default is 0
|
|
||||||
|
|
||||||
-tcp_bs Tcp send and receive buffer size, default 1MB
|
|
||||||
|
|
||||||
-tcp_mw The maximum window of tcp, the default is 10000
|
|
||||||
|
|
||||||
-tcp_rst Tcp timeout resend time, default 400ms
|
|
||||||
|
|
||||||
-tcp_gz Tcp will compress data when the packet exceeds this size, 0 means no compression, default 0
|
|
||||||
|
|
||||||
-tcp_stat Print tcp connection statistic, default 0 is off
|
|
||||||
|
|
||||||
-nolog Do not write log files, only print standard output, default 0 is off
|
|
||||||
|
|
||||||
-noprint Do not print standard output, default 0 is off
|
|
||||||
|
|
||||||
-loglevel log level, default is info
|
|
||||||
|
|
||||||
-sock5 Turn on sock5 forwarding, default 0 is off
|
|
||||||
|
|
||||||
-profile Enable performance detection on the specified port. The default 0 is not enabled.
|
|
||||||
|
|
||||||
-s5filter Set the forwarding filter in the sock5 mode. The default is full forwarding. For example, setting the CN indicates that the Chinese address is not forwarded.
|
|
||||||
|
|
||||||
-s5ftfile The data file in sock5 filter mode, the default reading of the current directory GeoLite2-Country.mmdb
|
|
||||||
|
2
docker-compose/.env
Normal file
2
docker-compose/.env
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
KEY=123456
|
||||||
|
SERVER=www.yourserver.com
|
16
docker-compose/Readme.md
Normal file
16
docker-compose/Readme.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Deploy with docker-compose
|
||||||
|
===========================
|
||||||
|
**First** edit `.env` file in this directory to your appropriate value.
|
||||||
|
|
||||||
|
**Then** run stack with these commands:
|
||||||
|
|
||||||
|
- in the server
|
||||||
|
```
|
||||||
|
docker-compose -f server.yml up -d
|
||||||
|
```
|
||||||
|
- in client machine
|
||||||
|
```
|
||||||
|
docker-compose -f client.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
**Now** use socks5 proxy at port `1080` of your client machine
|
9
docker-compose/client.yml
Normal file
9
docker-compose/client.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
pingtunnelServer:
|
||||||
|
image: esrrhs/pingtunnel:latest
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 1080:1080
|
||||||
|
command: "./pingtunnel -type client -l 0.0.0.0:1080 -s ${SERVER} -sock5 1 -key ${KEY}"
|
8
docker-compose/server.yml
Normal file
8
docker-compose/server.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
pingtunnelServer:
|
||||||
|
image: esrrhs/pingtunnel:latest
|
||||||
|
restart: always
|
||||||
|
network_mode: host
|
||||||
|
command: "./pingtunnel -type server -key ${KEY}"
|
Loading…
Reference in New Issue
Block a user