转载: http://shadowsocks.info/shadowsocks-udp/

VPS购买地址

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转发的释疑的更多相关文章

  1. 使用Nginx转发TCP/UDP数据

    编译安装Nginx 从1.9.0开始,nginx就支持对TCP的转发,而到了1.9.13时,UDP转发也支持了.提供此功能的模块为ngx_stream_core.不过Nginx默认没有开启此模块,所以 ...

  2. JAVA NIO udp 实现 群转发

    场景很简单,就是多个客户端通过udp,连接到服务器(其实是无连接的,就是服务器保存了客户端的ip信息).然后通过udp协议先服务器发送消息,然后服务器在通过udp转发在各个客服端. 这个是不是 观察者 ...

  3. [转帖]使用Nginx转发TCP/UDP数据

    使用Nginx转发TCP/UDP数据 https://www.cnblogs.com/guigujun/p/8075620.html 编译安装Nginx 从1.9.0开始,nginx就支持对TCP的转 ...

  4. 在树莓派上使用ss和iptables实现fq功能

    VPS购买地址 以下所有叙述均来自互联网上已有文章, 本人只做收集和整理工作. 写在前面的话: 一直想把家里的树梅派做成一个fq路由器, 期间也看过很多GitHub上的开源项目: Redsock, C ...

  5. 转一个集成速锐的ss 回头试试 补充加速一、Vultr安装锐速

    https://liyuans.com/archives/ssr-serverspeeder-onekey.html Debian/Ubuntu 系统 ShadowsocksR 一键安装脚本 (集成锐 ...

  6. ss-libev 源码解析udp篇 (4)

    本篇分析remote_recv_cb,这是整个udp转发的反方向,即读取从后端发送过来的数据再发送给前端.对于ss-server,读取到的数据是目标地址的udp服务器发送回来的响应数据,ss-serv ...

  7. ss-libev 源码解析udp篇 (3)

    本篇分析server_recv_cb,这个是udp转发中最重要的函数. server_recv_cb: 当ss-local或ss-server接收到来自前端的udp数据包时调用.这个函数代码比较多,除 ...

  8. SS配置,Brook是什么?,Brook如何配置(Android篇)

    很长时间没有更新了,今天给大家分享一下什么是Brook,和SS有什么区别?写的不好,请勿见外,大佬绕过. Brook简单介绍 Brook 是一个高效的 Socks5 代理软件,官方支持Windows. ...

  9. python之udp协议的套接字

    udp是无链接的,先启动哪一端都不会报错 udp服务端 1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 ...

随机推荐

  1. POJ 3974 回文串-Manacher

    题目链接:http://poj.org/problem?id=3974 题意:求出给定字符串的最长回文串长度. 思路:裸的Manacher模板题. #include<iostream> # ...

  2. css3 -- 过渡与动画

    1.注意使用前缀 2.属性: transition-property:none/all/属性 3.持续时间: transition-duration:默认值是0,即使是负值,按照0进行处理 4.tra ...

  3. jQuery-认识JQuery,jQuery选择器

    认识JQuery: 1.window.onload与$(document).ready()的区别 window.onload $(document).ready() 执行时机 必须等待网页中的所有内容 ...

  4. 【Clr in c#】方法

    1. 引用类型(class)与值类型(strust)的构造函数(实例构造器) 1,  创建一个引用类型的实例时,首先为实例的数据字段分配内存,然后初始对象的附加字段,最后调用实例构造器来设置对象的初始 ...

  5. http://blog.csdn.net/hitmediaman/article/details/6636402

    http://blog.csdn.net/hitmediaman/article/details/6636402

  6. Validator验证Ajax提交表单的方法

    Validator验证Ajax提交表单的方法 转自:http://hunanpengdake.iteye.com/blog/1671360 当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form ...

  7. 提高安全性而在HTTP响应头中可以使用的各种响应头字段

    本文介绍在Web服务器做出响应时,为了提高安全性而在HTTP响应头中可以使用的各种响应头字段.由于部分浏览器中有可能对某些字段或选项不提供支持,所以在使用这些字段时请先确认客户端环境. X-Frame ...

  8. 20145308刘昊阳 《Java程序设计》实验五报告

    20145308刘昊阳 <Java程序设计>实验五 Java网络编程及安全 实验报告 实验名称 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: ...

  9. 优化特性(Attribute)性能

    通过这篇文章,不仅可以了解到Attribute的工作原理,还可以了解到GetcustomeAttribute是的内部执行流程.最后,你会看到,使用缓存机制可以极大的优化反射Attribute的性能. ...

  10. js 性能基准测试工具-告别可能、也许、大概这样更快更省

    平时写js经常遇到这样做是不是更快点?但又没有具体简单可测试的工具,最近也倒序看博客园司徒正美 js分类下的文章 [ps:去年灵光一闪,发现看博客园排名前100的博客.按照文章分类倒序看是学习最快的方 ...