在docker中编译tor 源码

  • 前言
  • 一、docker中创建自定义镜像及容器
    • 1. 创建镜像的目录并拉取Ubuntu16.04镜像:
    • 2.书写Dockerfile,并build构建镜像
  • 二、编译tor源码
    • 1. 下载Tor源码
    • 2.编译Tor源码
  • 三、运行tor
  • 参考连接

前言

本文将在docker中创建一个镜像,在镜像的基础上启动容器,然后编译tor-0.4.4.5.tar.gz(目前最新版)源码


一、docker中创建自定义镜像及容器

我们所说的生成镜像其实是在ubuntu镜像的基础上构建自己的镜像,因此首先需要拉取ubuntu镜像。

1. 创建镜像的目录并拉取Ubuntu16.04镜像:

执行如下指令:

mkdir /home/qingfeng/qingfeng_docker_image/
docker pull ubuntu:16.04

如果再拉取ubuntu:16.04的时候timeout超时,则可以尝试更换docker源为阿里云的源。只需执行如下指令:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://lqbkkmob.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

之后再拉取ubuntu:16.04即可。
拉取ubuntu镜像后,执行指令:docker images可查看拉取的ubuntu镜像。

docker images

2.书写Dockerfile,并build构建镜像

输入指令:vim Dockerfile,并添加如下内容:

vim Dockerfile
FROM ubuntu:16.04RUN  apt-get update
RUN  apt-get upgrade -y# Install python3
RUN  apt-get install -y python3# Install dependent-libraries
RUN apt-get install -y wget vim
RUN apt-get install gcc -y && apt-get install make -y \&& apt-get install vim -y && apt-get install openssl -y \&& apt-get install libssl-dev -y && apt-get install python3-pip -yRUN mkdir /home/qingfeng_make/
VOLUME ["/home/qingfeng_make/"]
CMD [""]

书写Dockerfile后保存并退出。执行如下指令构建镜像:

docker build -t image_base::base .        #image_base为自己起的名字和tag标签

执行成功后,可执行指令:docker images查看构建的镜像
3. 创建容器
执行如下指令创建容器:

docker run -it --name tor -h tor -p 3533:22 image_base:base /bin/bash  # tor为容器名字,image_base:base为容器依赖的镜像

可使用指令:docker ps查看新建的容器,并执行指令:docker attach tor进入容器

docker attach tor

二、编译tor源码

1. 下载Tor源码

创建文件目录保存tor工程,执行如下指令:

mkdir mkdir -p /home/qingfeng/torProject

去官网:tor源码,下载tor的releases版本,如下图所示:


将tor-tor-0.4.4.5.tar.gz下载到/home/qingfeng/torProject目录,并使用指令:tar zxvf tor-tor-0.4.4.5.tar.gz解压。

2.编译Tor源码

执行官网给出的编译指令:sh autogen.sh && ./configure && make && make install
如图所示:

sh autogen.sh && ./configure && make && make install

出现错误:autogen.sh: 21: autogen.sh: aclocal: not found

此时需要安装atuogen,执行如下指令:

apt-get install automake


再次执行编译语句:sh autogen.sh && ./configure && make && make install
发送错误:WARNING: On Debian, you can install libevent using "apt-get install libevent-dev“

此时需要安装ibevent-dev,执行如下指令:

apt-get install libevent-dev

继续执行编译语句:sh autogen.sh && ./configure && make && make install
发生错误:To build without manpages, use the --disable-asciidoc argument
when calling configure.

执行编译语句:sh autogen.sh && ./configure --disable-asciidoc&& make && make install

sh autogen.sh && ./configure --disable-asciidoc&& make && make install

成功!如下图所示:

三、运行tor

在工作目录配置torrc文件,可以执行指令:find / -name torrc找一个torrc

find / -name torrc

之后复制一个torrc到工作目录(自定义的目录)(其实用vim自己创建一个也行,文件只要命名为torrc即可,注意torrc权限最好是777)
修改torrc内容,使用指令:vim torrc打开并编辑(如果没有vim,请apt-get install vim),内容如下:

SocksPort 9150
RunAsDaemon 1DataDirectory xxx/data  # 目录自己定义
Log notice file xxx/notice.log  # 目录自己定义
Log info file xxx/info.log  # 目录自己定义Socks5Proxy xxx.xxx.xxx.xxx:xxx        # 代理的ip和端口

保存并退出。
执行指令:tor -f torrc

tor -f torrc

可通过查看tail -f notic.log查看是否成功,当Bootstrapped 100%便代表成功运行。如图所示:

参考连接

1.https://www.jb51.net/article/177259.htm
2.https://blog.csdn.net/lld2002/article/details/82596120
3.https://github.com/torproject/tor

在docker中编译tor 源码相关推荐

  1. 在Virtual Box的shared folder中编译android源码。

    一些诡异的选择会带来诡异的问题,比如android源码sync到一个shared folder里面,然后在这个Folder里面编译android源码. 问题:在SharedFolder下使用make ...

  2. 【Windows 逆向】CheatEngine 工具 ( CheatEngine 简介 | 使用 Lazarus 编译 CE 源码 | CheatEngine 相关文档资料 )

    文章目录 一.CheatEngine 简介 二.使用 Lazarus 编译 CE 源码 三.CheatEngine 相关文档资料 一.CheatEngine 简介 CheatEngine 简称 CE ...

  3. 【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 )

    文章目录 一.导入 Oboe 库 二.使用预构建的二进制库和头文件 三.编译 Oboe 源代码 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Starte ...

  4. CentOS7中使用编译github源码方式离线安装Node-RED

    场景 Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED: Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED_ ...

  5. docker源码编译 linux_oracle linux 6 docker 安装(包括编译git源码)

    在安装时请确保可以联网.安装步骤如下: 1. 更新班级yum配置(参见: http://public-yum.oracle.com/getting-started.html): # cd /etc/y ...

  6. 我在windows10下,使用CMake gui 编译krita源码,CMake gui报错:LibMyPaint_DIR-NOTFOUND

    系列文章目录 文章目录 系列文章目录 前言 一.原因 二.解决 1.引入库 前言 我在windows10下,使用CMake gui 编译krita源码 where is the source code ...

  7. Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27

    文章目录 一. 前言 二.系列文章 三. 服务器配置 3.1 Repo 工具配置 3.2 AOSP 依赖配置 四. 下载源码 4.1 下载 aosp tar ball 4.2 同步代码 4.3 切分支 ...

  8. Java扩展Nginx之二:编译nginx-clojure源码

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 为什么要编译nginx-clojure源码 作为< ...

  9. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

最新文章

  1. See the World 2015-6-10
  2. 开课吧python视频百度云-做摄影2年,工资5000,兼职2W...
  3. php输出pre自动换行,解决 html pre 标签的内容自动换行的问题
  4. 详解在 Linux 启动时,如何自动执行命令或脚本
  5. PHP从零开始--数据库
  6. Java封装图书信息类
  7. 交替领先的赛跑(洛谷P1568题题解,Java语言描述)
  8. ssm radis mysql_SSM完美整合Redis
  9. Sentinel实现限流熔断及与Spring Cloud整合
  10. 生产者消费者线程在QueueT中实现多线程同步
  11. 轮播图的效果实现小米商城和京东商城
  12. java车牌号识别EasyPR_EasyPR-Java
  13. radius服务器有什么协议,RADIUS服务器使用RADIUS协议完成对用户主机的认证、授权和计费时,RADIUS协议工作流程如下:...
  14. 关于Coolie编码
  15. FlashFXP使用及连接不上的错误问题
  16. 安装极狐GitLab(ubuntu)----写给不爱看官方文档的人
  17. PointNet论文翻译
  18. css3 图片旋转360度动画
  19. 51nod 1423:最大二“货”
  20. CC00416.CloudKubernetes——|KuberNetesNetworkPolicy.V08|——|NetworkPolicy.v08|隔离中间件服务.v04|

热门文章

  1. dell kvm java 会话报错_生产环境下戴尔 R820 kvm虚拟化部署三(virt-manager图形化安装kvm虚拟机)...
  2. 如果你到了20岁,还没有到25岁
  3. 不同进制之间的转换(完整版)
  4. 疫苗接种预约挂号排队通知助手系统开发
  5. Ansys workbench结构线性静力学分析-应变分析
  6. 计算机课数据排序与筛选ppt,《计算机表格处理》PPT课件.ppt
  7. Windows打开WLS(为使用Ubuntu)
  8. Java使用ffmpeg进行视频格式转换、音视频合并、播放、截图
  9. 网站的favicon图标和TDK的SEO优化
  10. 明略数据:用大数据分析找出数据间隐藏的关联性