Compare commits

..

33 Commits

Author SHA1 Message Date
wangyu-
b35edf7486 fixed get_current_time() 2017-11-24 11:05:13 -06:00
wangyu-
3bc07d5c86 more log for epoll_wait 2017-11-23 09:56:20 -06:00
wangyu-
f081ab751d do not quit after got EINTR 2017-11-23 09:35:33 -06:00
wangyu-
91097eab5d Create ISSUE_TEMPLATE.md 2017-11-22 18:50:33 -06:00
wangyu-
c22b5e9680 Add files via upload 2017-11-21 14:46:14 -06:00
wangyu-
9162a533d3 changed -h page 2017-11-21 14:46:13 -06:00
wangyu-
b01b087949 Update README.zh-cn.md 2017-11-21 14:46:13 -06:00
wangyu-
51b45c8f39 new option mtu-warn 2017-11-21 14:46:13 -06:00
wangyu-
995ea8c98d Update README.zh-cn.md 2017-11-21 14:46:13 -06:00
wangyu-
aec81eb0c9 Add files via upload 2017-11-21 14:46:13 -06:00
wangyu-
8b59b4afb9 Delete udp2rawopenvpn.PNG 2017-11-21 14:46:13 -06:00
wangyu-
c33bb552cd Update README.zh-cn.md 2017-11-21 14:46:13 -06:00
wangyu-
9516cfe99d increased conv_timeout to 180s 2017-11-21 14:46:13 -06:00
wangyu-
5b1e59cae2 trival 2017-11-21 14:46:13 -06:00
wangyu-
211d7ea4d3 help page 2017-11-21 14:46:12 -06:00
wangyu-
7599d99fcc new option hb-len 2017-11-21 14:46:12 -06:00
wangyu-
706cb0b583 Update README.md 2017-11-21 14:46:12 -06:00
wangyu-
43ae798e77 improve heartbeat 2017-11-21 14:46:12 -06:00
wangyu-
2f12d55229 tuned parameter 2017-11-21 14:46:12 -06:00
wangyu-
0a4555dd42 Update README.md 2017-11-21 14:46:12 -06:00
wangyu-
14ece87bc3 tune parameter 2017-11-21 14:46:12 -06:00
wangyu-
50f682daf4 new option hb-mode 2017-11-21 14:46:12 -06:00
wangyu-
d487ca57f7 changed parameter 2017-11-21 14:46:12 -06:00
wangyu-
482e658858 increase heart beat length 2017-11-21 14:46:12 -06:00
wangyu-
069a9ba2b4 added version.txt into makefile 2017-11-21 14:46:12 -06:00
wangyu-
c591902be1 added missing files 2017-11-21 14:46:12 -06:00
wangyu-
6a825dc51e Update README.zh-cn.md 2017-11-21 14:46:12 -06:00
wangyu-
1bdb6a5720 fixed bug of last few commit, and fixed a bug of bind error 2017-11-21 14:46:11 -06:00
wangyu-
1afe8d7317 more fix 2017-11-21 14:46:11 -06:00
wangyu-
a54a0e269b fix timer of fd64 2017-11-21 14:46:11 -06:00
wangyu-
e8398d0d31 fixed some bug of last commit 2017-11-21 14:46:11 -06:00
wangyu-
dc43cb740b added an assert 2017-11-21 14:46:11 -06:00
wangyu-
2e6be9e159 Update README.md 2017-11-21 14:46:11 -06:00
15 changed files with 28 additions and 13 deletions

6
ISSUE_TEMPLATE.md Normal file
View File

@@ -0,0 +1,6 @@
For English speaking user
https://github.com/wangyu-/UDPspeeder/wiki/Issue-Guide
中文用户请看:
https://github.com/wangyu-/UDPspeeder/wiki/发Issue前请看
(否则Issue可能被忽略或被直接关掉)

View File

@@ -3,11 +3,9 @@
A Tunnel which turns UDP Traffic into Encrypted FakeTCP/UDP/ICMP Traffic by using Raw Socket, helps you Bypass UDP FireWalls(or Unstable UDP Environment). It can defend Replay-Attack and supports Multiplexing. It also acts as a Connection Stabilizer. A Tunnel which turns UDP Traffic into Encrypted FakeTCP/UDP/ICMP Traffic by using Raw Socket, helps you Bypass UDP FireWalls(or Unstable UDP Environment). It can defend Replay-Attack and supports Multiplexing. It also acts as a Connection Stabilizer.
When used alone,udp2raw tunnels only UDP traffic. Nevertheless,if you used udp2raw + any UDP-based VPN together,you can tunnel any traffic(include TCP/UDP/ICMP),currently OpenVPN/L2TP/ShadowVPN and [tinyFecVPN](https://github.com/wangyu-/tinyFecVPN) are confirmed to be supported.
![image0](images/image0.PNG) ![image0](images/image0.PNG)
or When used alone,udp2raw tunnels only UDP traffic. Nevertheless,if you used udp2raw + any UDP-based VPN together,you can tunnel any traffic(include TCP/UDP/ICMP),currently OpenVPN/L2TP/ShadowVPN and [tinyFecVPN](https://github.com/wangyu-/tinyFecVPN) are confirmed to be supported.
![image_vpn](images/udp2rawopenvpn.PNG) ![image_vpn](images/udp2rawopenvpn.PNG)

View File

@@ -16,7 +16,7 @@ u64_t get_current_time()
{ {
timespec tmp_time; timespec tmp_time;
clock_gettime(CLOCK_MONOTONIC, &tmp_time); clock_gettime(CLOCK_MONOTONIC, &tmp_time);
return tmp_time.tv_sec*1000+tmp_time.tv_nsec/(1000*1000l); return ((u64_t)tmp_time.tv_sec)*1000llu+((u64_t)tmp_time.tv_nsec)/(1000*1000llu);
} }
u64_t pack_u64(u32_t a,u32_t b) u64_t pack_u64(u32_t a,u32_t b)

View File

@@ -1,5 +1,5 @@
# Udp2raw-tunnel # Udp2raw-tunnel
![image2](/images/image2.PNG) ![image2](/images/image0.PNG)
udp2raw tunnel通过raw socket给UDP包加上TCP或ICMP header进而绕过UDP屏蔽或QoS或在UDP不稳定的环境下提升稳定性。可以有效防止在使用kcptun或者finalspeed的情况下udp端口被运营商限速。 udp2raw tunnel通过raw socket给UDP包加上TCP或ICMP header进而绕过UDP屏蔽或QoS或在UDP不稳定的环境下提升稳定性。可以有效防止在使用kcptun或者finalspeed的情况下udp端口被运营商限速。
支持心跳保活、自动重连,重连后会恢复上次连接,在底层掉线的情况下可以保持上层不掉线。同时有加密、防重放攻击、信道复用的功能。 支持心跳保活、自动重连,重连后会恢复上次连接,在底层掉线的情况下可以保持上层不掉线。同时有加密、防重放攻击、信道复用的功能。
@@ -20,7 +20,17 @@ https://github.com/wangyu-/UDPspeeder
# 支持的平台 # 支持的平台
Linux主机有root权限。可以是PC、android手机/平板、openwrt路由器、树莓派。主机上最好安装了iptables命令(apt/yum很容易安装)。 Linux主机有root权限。可以是PC、android手机/平板、openwrt路由器、树莓派。主机上最好安装了iptables命令(apt/yum很容易安装)。
对于windows和mac用户在虚拟机中可以稳定使用udp2raw跑在Linux里其他应用照常跑在window里确保虚拟机网卡工作在桥接模式。可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像大小只有7.5mb免去在虚拟机里装系统的麻烦虚拟机自带ssh server可以scp拷贝文件可以ssh进去可以复制粘贴root密码123456。 Release中提供了`amd64``x86``arm``mips_be``mips_le`的预编译binary.
##### 对于windows和mac用户
在虚拟机中可以稳定使用udp2raw跑在Linux里其他应用照常跑在window里确保虚拟机网卡工作在桥接模式。可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像大小只有7.5mb免去在虚拟机里装系统的麻烦虚拟机自带ssh server可以scp拷贝文件可以ssh进去可以复制粘贴root密码123456。
如果你的网络不允许桥接也是有办法用的具体方法请看wiki。
##### 对于ios和游戏主机用户
可以把udp2raw运行在局域网的其他机器上。最好的办法是买个能刷OpenWrt/LEDE/梅林的路由器把udp2raw运行在路由器上。
# 功能特性 # 功能特性
### 把udp流量伪装成tcp /icmp ### 把udp流量伪装成tcp /icmp
@@ -50,7 +60,7 @@ NAT 穿透 tcp icmp udp模式都支持nat穿透。
支持Openvz配合finalspeed使用可以在openvz上用tcp模式的finalspeed 支持Openvz配合finalspeed使用可以在openvz上用tcp模式的finalspeed
支持Openwrt没有编译依赖容易编译到任何平台上。release中提供了ar71xx版本的binary 支持Openwrt没有编译依赖容易编译到任何平台上。
epoll实现高并发除了回收过期连接外所有操作的时间复杂度都跟连接数无关。回收过期连接的操做也是柔和进行的不会因为消耗太多cpu时间造成延迟抖动。 epoll实现高并发除了回收过期连接外所有操作的时间复杂度都跟连接数无关。回收过期连接的操做也是柔和进行的不会因为消耗太多cpu时间造成延迟抖动。

1
images/wiki/111 Normal file
View File

@@ -0,0 +1 @@

BIN
images/wiki/mac_nat_vb1.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
images/wiki/mac_nat_vb2.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
images/wiki/mac_nat_vb3.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
images/wiki/mac_nat_vb4.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
images/wiki/windows_nat.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1196,13 +1196,13 @@ int client_event_loop()
if (nfds < 0) { //allow zero if (nfds < 0) { //allow zero
if(errno==EINTR ) if(errno==EINTR )
{ {
mylog(log_info,"epoll interrupted by signal\n"); mylog(log_info,"epoll interrupted by signal,continue\n");
//close(fifo_fd); //close(fifo_fd);
myexit(0); //myexit(0);
} }
else else
{ {
mylog(log_fatal,"epoll_wait return %d\n", nfds); mylog(log_fatal,"epoll_wait return %d,%s\n", nfds,strerror(errno));
myexit(-1); myexit(-1);
} }
} }
@@ -1440,12 +1440,12 @@ int server_event_loop()
if (nfds < 0) { //allow zero if (nfds < 0) { //allow zero
if(errno==EINTR ) if(errno==EINTR )
{ {
mylog(log_info,"epoll interrupted by signal\n"); mylog(log_info,"epoll interrupted by signal,continue\n");
myexit(0); //myexit(0);
} }
else else
{ {
mylog(log_fatal,"epoll_wait return %d\n", nfds); mylog(log_fatal,"epoll_wait return %d,%s\n", nfds,strerror(errno));
myexit(-1); myexit(-1);
} }
} }