ss与udp转发的释疑
转载: http://shadowsocks.info/shadowsocks-udp/
udp是什么:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
UDP协议全称是用户数据报协议[1] ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
shadowsocks-android 的 DNS (UDP) 转发功能
从 2.1.2 开始,shadowsocks-android 开始支持透明的 DNS (UDP) 转发功能。这项功能包括两个部分:
1. NAT(ROOT)模式下,仅支持转发 DNS 的 UDP 数据包。
2. VPN 模式下,支持转发所有的 UDP 数据包。
限制:
1. 当前只有 1.4 以上的 libev 或 nodejs 实现的服务器端才支持此项功能。
2. libev 服务器端还需要在命令行中加上 -u 的参数。
3. 此项功能默认关闭,依然由 pdnsd 负责转发 TCP 的 DNS 查询。
网友提出的几个问题:
问题一:shadowsocks-libev 默认启用了 udp relay 吗?
请问udp relay功能是否有必要打开?我看shadowsocks-android是有这个选项支持该功能的,但shadowsocks-qt5貌似不支持。
另外,config.json里面是不是不支持写明是否需要打开udp relay,而必须要ss-server -c /etc/shadowsocks/config.json -u这么写吗?
debian下文件在/etc/init.d/shadowsocks-libev,找到
start-stop-daemon –start –quiet –pidfile $PIDFILE –chuid $USER:$GROUP –exec $DAEMON — \
-c “$CONFFILE” -a “$USER” -u -f $PIDFILE $DAEMON_ARGS \
发现已经默认加上-u参数,1.6.1版测试结果
问题二:shadowsocks android vpn 模式要避免 dns 污染要打开 UDP 转发吗?
国内ps4联机很蛋疼,于是在路由器里搞了一个支持shadowsocks的固件,作者说支持udprelay,会转发udp数据包。
于是我就在我的服务器里开通了一个支持udprelay的ss账号,用的是最新版的ss-libev,启动参数中加了-u,应该没错。
实测ps4也可以打开youtube,但是ps4网络测试结果为nat类型失败。
我不确定是路由器固件作者的问题还是ss-libev的udprelay功能有bug,所以我需要一个可以很好支持udprelay的ss账号,进行测试。
问题三:shadowsocks 现在能不能代理游戏,我看说支持 UDP 了?
对代理游戏有一定需求(MAC版的美服 BATTLE.NET),现在SS能不能直接全局代理游戏,搜索了下貌似之前的一个版本就添加了对UDP的支持且默认开启,是不是意思是开了全局模式就默认代理UDP/TCP了?
问题四:不确定 SS 服务器端是否支持 UDP 转发,有办法测试么?
买了个套装服务,内含SS,找了个703N的路由器刷了openwrt官方镜像开始一步一步安装shadowsocks-libev版,我的想法是用这个703N做全局翻,所以DNS解析也用udp转发到8.8.4.4:53,但测了半天不好用,才想起对面的SS服务器端未必开了这个功能,现在我如何确定服务器端是否打开了UDP转发?
或者UDP转发这个功能压根和服务器端没关系?
ss-tunnel.exe -c config.json -l 53 -L 8.8.8.8:53 -u
nslookup www.youtube.com 127.0.0.1
如有返回结果则开启了udp转发
/etc/init.d/shadowsocks 这个脚本里本身已经设置了 -u ,不是这样执行的。如果你要手动加 -u, 则是 ss-server -c /etc/shadowsocks/config.json -u
ss与udp转发的释疑的更多相关文章
- 使用Nginx转发TCP/UDP数据
编译安装Nginx 从1.9.0开始,nginx就支持对TCP的转发,而到了1.9.13时,UDP转发也支持了.提供此功能的模块为ngx_stream_core.不过Nginx默认没有开启此模块,所以 ...
- JAVA NIO udp 实现 群转发
场景很简单,就是多个客户端通过udp,连接到服务器(其实是无连接的,就是服务器保存了客户端的ip信息).然后通过udp协议先服务器发送消息,然后服务器在通过udp转发在各个客服端. 这个是不是 观察者 ...
- [转帖]使用Nginx转发TCP/UDP数据
使用Nginx转发TCP/UDP数据 https://www.cnblogs.com/guigujun/p/8075620.html 编译安装Nginx 从1.9.0开始,nginx就支持对TCP的转 ...
- 在树莓派上使用ss和iptables实现fq功能
VPS购买地址 以下所有叙述均来自互联网上已有文章, 本人只做收集和整理工作. 写在前面的话: 一直想把家里的树梅派做成一个fq路由器, 期间也看过很多GitHub上的开源项目: Redsock, C ...
- 转一个集成速锐的ss 回头试试 补充加速一、Vultr安装锐速
https://liyuans.com/archives/ssr-serverspeeder-onekey.html Debian/Ubuntu 系统 ShadowsocksR 一键安装脚本 (集成锐 ...
- ss-libev 源码解析udp篇 (4)
本篇分析remote_recv_cb,这是整个udp转发的反方向,即读取从后端发送过来的数据再发送给前端.对于ss-server,读取到的数据是目标地址的udp服务器发送回来的响应数据,ss-serv ...
- ss-libev 源码解析udp篇 (3)
本篇分析server_recv_cb,这个是udp转发中最重要的函数. server_recv_cb: 当ss-local或ss-server接收到来自前端的udp数据包时调用.这个函数代码比较多,除 ...
- SS配置,Brook是什么?,Brook如何配置(Android篇)
很长时间没有更新了,今天给大家分享一下什么是Brook,和SS有什么区别?写的不好,请勿见外,大佬绕过. Brook简单介绍 Brook 是一个高效的 Socks5 代理软件,官方支持Windows. ...
- python之udp协议的套接字
udp是无链接的,先启动哪一端都不会报错 udp服务端 1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 ...
随机推荐
- 4、delphi record数组复制
SetLength(OldDeptInfo,0); //释放旧数组 OldDeptInfo:=nil; 这样也可以: //SetLength(OldDeptInfo,Length(NewDeptInf ...
- Android HttpClient post MultipartEntity - Android 上传文件
转自[http://blog.csdn.net/hellohaifei/article/details/9707089] 在Android 中使用HttpClient,MultipartEntity ...
- [转]使用 HTML5 IndexedDB API
本地数据持久性提高了 Web 应用程序可访问性和移动应用程序响应能力 索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 ...
- WPF中获取形状范围
在没加入到Canvas时,也能获取形状的方法: var polygon = new Polygon(); polygon.Points.Add(new Point(xStart, yStart)); ...
- BZOJ4118 : [Wf2015]Window Manager
OPEN.CLOSE.RESIZE操作直接模拟即可. 对于MOVE,设$f_i$表示$i$号矩形的坐标,先无视边界通过DP求出每个矩形的坐标,再根据边界反向用第二次DP求出被移动矩形移动的真实距离,再 ...
- Excel 如何引用某表格中的某一列作为数据有效性验证
1. 首先把数据有效性的列表加入到某个表格中.如下图所示:此表格名称为表5 2. 然后定义名称:公式--定义名称 如下填入信息: 3. 然后再数据有效性验证中输入如下信息即可:
- 关于禁止ipad的home键解决方法
参考http://www.toolsandapplications.com/guided-access-how-to-disable-the-home-button-on-ipad/
- transform应用详解
关于css3的transform,做了一个demo,上代码 html: <!DOCTYPE html> <html> <head lang="en"& ...
- 【CodeVS】p1299 切水果
题目描述 Description 简单的说,一共N个水果排成一排,切M次,每次切[L,R]区间的所有水果(可能有的水果被重复切),每切完一次输出剩下水果数量 数据已重新装配,不会出现OLE错误 时限和 ...
- InterBase数据库迁移到MySQL(恢复备份)
我拿到的是InterBase导出的“.gbk”后缀的数据库备份文件,目标是可以通过命令行的方式导入到指定的数据库中,在这个脚本中我使用了InterBase数据库中自带的“gbak”命令行来进行操作. ...