在交叉编译中使用最新版的SS
因为旧版本的ss-local总是出现 shake hands failed 错误, 打算用最新的版本试试, 所以尝试在编译中使用最新版的shadowsocks.
项目地址 Shadowsocks-libev for OpenWrt: https://github.com/shadowsocks/openwrt-shadowsocks
1. 首先你需要有一个能正常编译OpenWrt的工作目录, 假定是/home/you/openwrt/master
2. 然后, 将最新的shadowsocks-libev clone到一个临时目录 /home/tmp
mkdir tmp cd tmp # feeds git clone https://github.com/shadowsocks/openwrt-feeds.git package/feeds # shadowsocks-libev Makefile git clone https://github.com/shadowsocks/openwrt-shadowsocks.git package/shadowsocks-libev
3. 用刚才导出的feeds, 覆盖掉/home/you/openwrt/master/packages/feeds 下对应的目录
4. 用刚才导出的shadowsocks-libev, 覆盖掉/home/you/openwrt/master/packages/network 下对应的目录
5. 在/home/you/openwrt/master 下, make menuconfig, 会看到network下出现了 shadowsocks-libev 和 shadowsocks-libev-server 这两项, 勾选这两项后保存退出
6. 按原来的方式重新编译OpenWrt
7. 在 /home/you/openwrt/master/bin/packages 下找到对应的新版本的shadowsocks-libev 文件, 就说明编译成功了
8. 这样编译后产生的固件, 只有ss-*系列可执行文件, 并无对应的服务脚本和配置文件, 需要自己添加, 配置文件例子
{
"server":"somewhere.rockbb.com",
"server_port":1802,
"local_address": "0.0.0.0",
"local_port":1801,
"password":"something",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"mode": "tcp_and_udp"
}
命令行启动:
ss-local -c "/etc/shadowsocks/ss-local-config.json" -v
系统服务脚本(新的openwrt版本中不再使用start() stop()了):
#!/bin/sh /etc/rc.common
# Copyright (C) Milton Lai
START=
STOP=
USE_PROCD=
CONFIG_FILE="/etc/shadowsocks/ss-local-config.json"
start_local() {
service_start /usr/bin/ss-local \
-c "$CONFIG_FILE"
return $?
}
start_service() {
cmdline="/usr/bin/ss-local -c $CONFIG_FILE -v"
procd_open_instance
procd_set_param command $cmdline
procd_set_param respawn retry=
procd_set_param stdout # forward stdout of the command to logd
procd_set_param stderr # same for stderr
procd_close_instance
}
添加到系统服务:
# 查看启用的服务 for F in /etc/init.d/* ; do $F enabled && echo $F on || echo $F **disabled**; done # 启用 /etc/init.d/shadowsocks enable # 复查 for F in /etc/init.d/* ; do $F enabled && echo $F on || echo $F **disabled**; done # 启动 /etc/init.d/shadowsocks start # 关闭 /etc/init.d/shadowsocks stop
注意: 3和4的路径必须正确, 否则最后编译使用的依然是原版本的shadowsocks
另: 最新的 shadowsocks-libev 3.0.5 中, 已经取消了One Time Auth选项, 取而代之的是AEAD
https://github.com/jlund/streisand/issues/502
https://github.com/shadowsocks/shadowsocks-libev/blob/master/src/jconf.c
) {
FATAL("One time auth has been deprecated. Try AEAD ciphers instead.");
}
在交叉编译中使用最新版的SS的更多相关文章
- 交叉编译中的build、host和target
build.host和target 在交叉编译中比较常见的一些参数就是build.host和target了,正确的理解这三者的含义对于交叉编译是非常重要的,下面就此进行解释 --build=编译 ...
- Ubuntu 14.04中安装最新版Eclipse
Ubuntu 14.04中安装最新版Eclipse 来源:Linux社区 作者:Linux 1.安装OpenJDK Java 7 如果你的系统中没有安装Java,我们需要按照如下步骤事先安装好 ...
- JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别
JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别 : HH:24小时制 hh:12小时制 package time; import java.tex ...
- 如何在Ubuntu 14.04中安装最新版Eclipse
想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...
- 交叉编译中的 --sysroot 等等在编译时的作用
--sysroot=dir 的作用 如果在编译时指定了-sysroot=dir 就是为编译时指定了逻辑目录.编译过程中需要引用的库,头文件,如果要到/usr/include目录下去找的情况下,则会在前 ...
- 转:如何在Ubuntu 14.04中安装最新版Eclipse
想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...
- 在centos中安装最新版nginx,同时更改官方文档路径错误
nginx的可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g ++开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译 ...
- SimpleDateFormat 中的yyyy-MM-dd HH:mm:ss.SSS说明
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 转换的格式:yyyy是完整的西元年,MM是月份, ...
- 在Ubuntu 14.04中安装最新版Eclipse
1.下载eclipse从官网http://www.eclipse.org/downloads/下载Eclipse IDE for Java EE Developers的Linux版本eclipse-S ...
随机推荐
- Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果
Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果 不同大小.位置,效果,进度条等 演示 XML/HTML Code <article class="exa ...
- 微商营销实战技巧分享,轻松月入10W
如今能够说是移动互联时代.在这个时代,微信眼下能够说是当之无愧的移动应用,依据报道,眼下微信有7个多亿的用户,怪不得那么多人看到微商的时代,一大批人開始涌入微商,导致如今微信上卖产品都已经泛滥了,导致 ...
- Ubuntu 将应用程序固定到快速启动栏
Ubuntu上没有快捷方式的说法,而通过软件中心安装的软件就有图标,并能加入到启动器上,这是因为它们有一个desktop配置文件的缘故.这些配置文件在/usr/share/applications这个 ...
- 莫比乌斯函数&莫比乌斯反演
莫比乌斯函数:http://wenku.baidu.com/view/fbec9c63ba1aa8114431d9ac.html Orz PoPoQQQ
- Servlet过滤器创建与配置
例1 创建一个过滤器,实现网站访问计数器的功能,并在web.xml文件的配置中,将网站访问量的初始值设置为5000. (1)创建名称为CountFilter的类,该类实现javax.servlet.F ...
- max-sum-of-sub-matrix-no-larger-than-k
根据上一篇文章提到的参考文档: https://leetcode.com/discuss/109749/accepted-c-codes-with-explanation-and-references ...
- go的基结构体如何使用派生结构体的方法
将派生类的方法声明为接口嵌入到基结构体中,派生结构体声明该接口为自身.
- iOS开发-委托实战
昨天晚上头疼,写了一部分草草的收笔了,早上起来补发一篇文章,昨天关于委托的基本使用和概念都稍微讲了一下,最开始学习委托的时候苹果官网和中文的博客文章看了不少,相似指数比较高.委托在命名要准确,最好是一 ...
- 【Dagger2】简介 配置 使用 MVP案例
简介 dagger2:https://github.com/google/dagger Maven Central 2.11版本jar包下载 dagger:https://github.com/sq ...
- Android之属性动画(一)
一.概述 Android平台中常用的动画主要有两类,一类是View动画,一类是3.0后新增的属性动画.属性动画与View动画相比功能更加强大,主要体现在以下两个方面: 1. 属性动画不仅仅能应用到V ...