在交叉编译中使用最新版的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 ...
随机推荐
- 更改mysql字段的编码类型为utf8mb4
ALTER TABLE tb_case MODIFY COLUMN content VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode ...
- NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
原文地址: http://my.oschina.net/u/1791256/blog/283064 TOMCAT7.0+ NGINX + MEMCACHED + memcached-session-m ...
- 为iOS应用制作一个二维码
第一步:找到你发布的ios应用的下载链接: 第二步:使用二维码转换器,将下载链接转换成 二维码.http://my.qzone.qq.com/app/100699951.html?via=appcen ...
- NodeJS学习资料合集
1. 官网 nodejs 2. How do I get started with Node.js,stackoverflow提问,收集非常多实用的网站 3. node-books.github收 ...
- 安全:Web 安全学习笔记
背景 说来惭愧,6 年的 web 编程生涯,一直没有真正系统的学习 web 安全知识(认证和授权除外),这个月看了一本<Web 安全设计之道>,书中的内容多是从微软官方文档翻译而来,这本书 ...
- MAC之查看日历
命令:cal 查看当前月份 命令: cal 04 2001 查看2001年的4月份 echo命令: 打印信息
- 图文详解 Android Binder跨进程通信机制 原理
图文详解 Android Binder跨进程通信机制 原理 目录 目录 1. Binder到底是什么? 中文即 粘合剂,意思为粘合了两个不同的进程 网上有很多对Binder的定义,但都说不清楚:Bin ...
- android破解
1.adb shell dumpsys activity top 能够获取到当前程序的Activity信息 2.1.在invoke-static/invoke-virtual指令他的返回类型是V之后可 ...
- 迭代最近点算法 Iterative Closest Points
研究生课程系列文章参见索引<在信科的那些课> 基本原理 假定已给两个数据集P.Q, ,给出两个点集的空间变换f使他们能进行空间匹配.这里的问题是,f为一未知函数,而且两点集中的点数不一定相 ...
- maven+jenkins+jmeter性能测试:maven把项目依赖拷贝到项目指定位置
先上pom.xml配置: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:// ...