我只需要运行一次此脚本文件吗?

王克昌博士

我只需要运行一次此脚本文件吗?之后,docker torproxy容器将按预期工作,或者我每次重新启动计算机时都需要运行此容器?

#!/usr/bin/env bash
#===============================================================================
#          FILE: tor-route-all-traffic.sh
#
#         USAGE: ./tor-route-all-traffic.sh
#
#   DESCRIPTION: Route all traffic through a docker tor container
#
#       OPTIONS: ---
#  REQUIREMENTS: running tor docker container
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: David Personette ([email protected]),
#  ORGANIZATION:
#       CREATED: 2015-07-06 05:59
#      REVISION: 0.1
#===============================================================================

set -euo pipefail # Treat unset variables as an error

# Most of this is from
# https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy

### set variables
# destinations you don't want routed through Tor
_non_tor="192.168.1.0/24 192.168.0.0/24"

### get the container tor runs in
_tor_container=$(docker ps | awk '/torproxy/')
    if [[ "$_tor_container" == "" ]]; then
    echo 'ERROR: you must start a tor proxy container first, IE:'
    echo '    docker run -d --net host --restart always dperson/torproxy'
    exit 1
fi

### get the UID that tor runs as
_tor_uid=$(docker exec $_tor_container id -u tor)

### Tor's TransPort
_trans_port="9040"
_dns_port="5353"

### flush iptables
iptables -F
iptables -t nat -F

### set iptables *nat to ignore tor user
iptables -t nat -A OUTPUT -m owner --uid-owner $_tor_uid -j RETURN

### redirect all DNS output to tor's DNSPort
iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports $_dns_port

### set iptables *filter
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

### allow clearnet access for hosts in $_non_tor
for _clearnet in $_non_tor 127.0.0.0/8; do
   iptables -t nat -A OUTPUT -d $_clearnet -j RETURN
   iptables -A OUTPUT -d $_clearnet -j ACCEPT
done

### redirect all other output to tor's TransPort
iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $_trans_port

### allow only tor output
iptables -A OUTPUT -m owner --uid-owner $_tor_uid -j ACCEPT
iptables -A OUTPUT -j REJECT
电信

iptables设置不自动持续到重新引导。因此,除非您的Linux发行版具有其他一些功能,这些功能可以在关机时保存当前的iptables设置,并在重新启动后将其还原,否则,您将需要在每次重新启动计算机时重新运行该脚本。

当然,没有人说您必须手动进行

您可能应该考虑将此脚本添加到系统的启动脚本中。详细信息将因Linux发行版而异。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

python imaplib:我只需要调用一次.close()吗?

我如何做到这样我只需要引用一次我的 api 密钥?

python中的循环只需要运行一次循环

可以把所有只需要调用一次的函数写成IIFE吗

我只需要使用 onload 函数显示一次 jquery 弹出窗口

我正在使用递归函数,并且只需要在函数中打印一次

闪亮按钮只需要一次

Onload 只需要工作一次

如何获取只需要获取一次的数据

只需要执行一次 data.sql 文件

为什么在我要使用的每个文件中都需要导入一些Pod,而只需要导入一次?

Angular 2 - 如何创建一个我只需要加载一次的全局服务

扩展ScrollView onScrollEnded从数据库加载多个条目,但是每个End我只需要一次

如何在构造函数的控制器中调用模型,因为我只需要编写一次

在文本文件中,我只需要打印最后一个字符

Bootstrap-可折叠表-一次只需要扩展一行

只需要使用函数 console.log 一次

只需要执行一次辅助方法(缓存结果)

选择器中每个元素的事件触发,只需要触发一次

如何组合平面图,因此只需要使用一次

mysql 更新查询只需要在重复存在时执行一次

只需要 Java 循环一次并创建单个列/行

通过Java运行Python脚本,只需导入一次

手风琴能够显示所有内容,但我只需要一次打开一个即可

Perl:给定一个文本文件,我只需要在矩阵中保存包含某个单词的文本行

在3个包装的div中有图像,但一次只需要查看一个div。加载太慢

如果该属性值再次出现,则只需要打印一次属性值,它应该忽略它

带有Redux的Web应用程序,如何处理逻辑只需要执行一次

python 3中是否有办法使两个用户定义的函数只需要输入一次