Hello.
Sometimes,if not often,the IP address assigned to me by TOR does not work.
I found a script that tells to be able to change the TOR IP number cyclically
It’s called “tor-ip-changer” ; unfortunately it does not work. The IP number does not change. I tried to run it on the FreeBSD 14.0-RELEASE within the Linux emulation layer.
So,I have followed these instructions here :
and I tried to issue the commands,to see what happens :
Part 1 - install curl, authbind, tor, obfs4proxy, meek-client, libsqlite3-dev, tk-dev, and stop tor service after install and allow to bind port 53 without root permission
# sudo apt install curl authbind tor obfs4proxy psmisc build-essential libsqlite3-dev tk-dev
# git clone https://github.com/seevik2580/tor-ip-changer.git
# cd tor-ip-changer/source-code
# sudo dpkg -i requirements/linux/meek-client_0.20+git20151006-1_amd64.deb
Selecting previously unselected package meek-client.
(Reading database ... 190277 files and directories currently installed.)
Preparing to unpack .../meek-client_0.20+git20151006-1_amd64.deb ...
Unpacking meek-client (0.20+git20151006-1) ...
Setting up meek-client (0.20+git20151006-1) ...
Processing triggers for man-db (2.10.2-2) ...
setpriv: activate capabilities: Operation not permitted
# sudo touch /etc/authbind/byport/54
# sudo chmod 777 /etc/authbind/byport/54
Part 2 - install pyenv
# apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
# curl https://pyenv.run | bash
Cloning into '/root/.pyenv'...
Cloning into '/root/.pyenv/plugins/pyenv-doctor'...
Cloning into '/root/.pyenv/plugins/pyenv-update'...
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
# echo 'export PATH="~/.pyenv/bin:$PATH"' | tee -a ~/.bashrc
# echo 'eval "$(pyenv init -)"' | tee -a ~/.bashrc
# echo 'eval "$(pyenv virtualenv-init -)"' | tee -a ~/.bashrc
# exec bash
Part 3 - install python 3.7.x with pyenv
# env PYTHON_CONFIGURE_OPTS="--enable-shared" ~/.pyenv/bin/pyenv install 3.7.7
Downloading Python-3.7.7.tar.xz...
-> https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz
Installing Python-3.7.7...
Installed Python-3.7.7 to /root/.pyenv/versions/3.7.7
# pyenv global 3.7.7
Part 4 - install requirements with pip
# python -m pip install -r requirements/linux/pip-requirements.txt
Collecting urllib3 (from -r requirements/linux/pip-requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/d2/b2 /b157855192a68541a91ba7b2bbcb91f1b4faa51f8bae38d8005c034be52 4/urllib3-2.0.7-py3-none-any.whl (124kB)
Collecting pysocks (from -r requirements/linux/pip- requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/8d/59 /b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf 9/PySocks-1.7.1-py3-none-any.whl
Collecting pyinstaller (from -r requirements/linux/pip- requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/bd/23 /c5f0163b2049699cdbb511eac72798f017d4c9a3f4ba571fbef398156e3 d/pyinstaller-5.13.2.tar.gz (4.1MB)
Installing build dependencies ... done Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting importlib-metadata>=1.4; python_version < "3.8" (from pyinstaller->-r requirements/linux/pip- requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl
Collecting setuptools>=42.0.0 (from pyinstaller->-r requirements/linux/pip-requirements.txt (line 3))
Using cached https://files.pythonhosted.org/packages/c7/42/be1c7bbdd83e1bfb160c94b9cafd8e25efc7400346cf7ccdbdb452c467fa/setuptools-68.0.0-py3-none-any.whl
Collecting pyinstaller-hooks-contrib>=2021.4 (from pyinstaller->-r requirements/linux/pip-requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/80/7a/00aac9e2db19df940adc5681a1f0cde0ed3aab3655a84279106db7ef0275/pyinstaller_hooks_contrib-2024.0-py2.py3-none-any.whl
(326kB)
Collecting altgraph (from pyinstaller->-r requirements/linux /pip-requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/4d/3f/3bc3f1d83f6e4a7fcb834d3720544ca597590425be5ba9db032b2bf322a2/altgraph-0.17.4-py2.py3-none-any.whl
Collecting typing-extensions>=3.6.4; python_version < "3.8" (from importlib-metadata>=1.4; python_version <
"3.8"->pyinstaller->-r requirements/linux/pip-requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl
Collecting zipp>=0.5 (from importlib-metadata>=1.4; python_version < "3.8"->pyinstaller->-r requirements/linux /pip-requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/5b/fa/c9e82bbe1af6266adf08afb563905eb87cab83fde00a0a08963510621047/zipp-3.15.0-py3-none-any.whl
Collecting packaging>=22.0 (from pyinstaller-hooks- contrib>=2021.4->pyinstaller->-r requirements/linux/pip- requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl (53kB)
Building wheels for collected packages: pyinstaller
Building wheel for pyinstaller (PEP 517) ... done
Created wheel for pyinstaller: filename=pyinstaller-5.13.2- cp37-none-any.whl size=2141511 sha256=6d7e0ddc402029bcde632226cb433da77e5cf14dcb254703abf96 524a465c805
Stored in directory: /root/.cache/pip/wheels/53/67/27/dc0b2e334bd7e182d2156a1908ec8078eee27575f484af8690
Successfully built pyinstaller
Installing collected packages: urllib3, pysocks, typing- extensions, zipp, importlib-metadata, setuptools, packaging, pyinstaller-hooks-contrib, altgraph, pyinstaller
Found existing installation: setuptools 41.2.0
Uninstalling setuptools-41.2.0:
Successfully uninstalled setuptools-41.2.0
Successfully installed altgraph-0.17.4 importlib-metadata-6.7.0 packaging-23.2 pyinstaller-5.13.2 pyinstaller-hooks-contrib-2024.0 pysocks-1.7.1 setuptools-68.0.0 typing-extensions-4.7.1 urllib3-2.0.7 zipp-3.15.0
WARNING: You are using pip version 19.2.3, however version 23.3.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
# pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/15/aa /3f4c7bcee2057a76562a5b33ecbd199be08cdb4443a02e26bd2c3cf6fc3 9/pip-23.3.2-py3-none-any.whl (2.1MB)
Installing collected packages: pip Found existing installation: pip 19.2.3 Uninstalling pip-19.2.3:
Successfully uninstalled pip-19.2.3 Successfully installed pip-23.3.2
On FREEBSD :
# xhost +
Now,I have launched the script :
# python ipchanger.py &
so :
Thank you for using TOR IP changer
I am not responsible for any casualties or whatever
This version: 1.3.0-8
Last available version: 1.3.0-8 No update required.
IPchanger last update 26.10.2021
Message of the day: project open-sourced :)
Repo url: https://github.com/seevik2580/tor-ip-changer
Autostart OFF.
API server binded to 127.0.0.1:14999 (local) OK.
Checking files.
No missing files TOR server starting using direct
connection.
Always obtain unique IP OFF
Please wait ... 30% -
Loading networkstatus consensus 45% -
Asking for relay descriptors 75% -
Loaded enough directory info to build circuits 100% - Done
tail: inotify cannot be used, reverting to polling:
Function not implemented
tail: inotify cannot be used, reverting to polling:
Function not implemented (this is a known non implemented
function of the FreeBSD emulation layer,I don't know if
this is the cause of the problem)
[notice] Tor 0.4.7.10 running on Linux with Libevent
2.1.12-stable, OpenSSL 3.0.5, Zlib 1.2.11, Liblzma 5.2.5,
Libzstd 1.5.2 and Glibc 2.36 as libc.
[notice] Tor can't help you if you use it wrong!
Learn how to be safe at https://support.torproject.org/faq/staying-anonymous/
[notice] Read configuration file "/home/marietto/Files
/tor-ip-changer/source-code/Data/tordata0/torrc".
[warn] Path for DataDirectory (Data/tordata0) is relative
and will resolve to /home/marietto/Files/tor-ip-changer
/source-code/Data /tordata0. Is this what you wanted?
[warn] Path for GeoIPFile (Tor/geoip) is relative and will
resolve to /home/marietto/Files/tor-ip- changer/source-
code/Tor/geoip. Is this what you wanted?
[warn] Path for GeoIPv6File (Tor/geoip6) is relative and
will resolve to /home/marietto/Files/tor-ip-
changer/source-code/Tor/geoip6. Is this what you wanted?
[warn] You specified a public address '0.0.0.0:9050' for
SocksPort. Other people on the Internet might find your
computer and use it as an open proxy.
Please don't allow this unless you have a good reason.
[notice] Opening Socks listener on 0.0.0.0:9050
[notice] Opened Socks listener connection (ready) on 0.0.0.0:9050
[notice] Opening DNS listener on 127.0.0.1:54
[notice] Opened DNS listener connection (ready)
on 127.0.0.1:54
[notice] Opening Control listener on 127.0.0.1:15000
[notice] Opened Control listener connection (ready)
on 127.0.0.1:15000
[warn] Your log may contain sensitive information -
you disabled SafeLogging.
Don't log unless it serves an important reason.
Overwrite the log afterwards.
[notice] Parsing GEOIP IPv4 file Tor/geoip.
[notice] Parsing GEOIP IPv6 file Tor/geoip6.
Checking files.
No missing files
TOR server starting
using direct connection.
Always obtain unique IP OFF
Please wait ...
[warn] You are running Tor as root. You don't need to,
and you probably shouldn't.
[notice] Bootstrapped 0% (starting): Starting
[notice] Starting with guard context "default"
[notice] Bootstrapped 5% (conn): Connecting to a relay
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] Bootstrapped 10% (conn_done):
Connected to a relay
[notice] Bootstrapped 14% (handshake):
Handshaking with a relay
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] Bootstrapped 15% (handshake_done):
Handshake with a relay done
[notice] Bootstrapped 75% (enough_dirinfo):
Loaded enough directory info to build circuits
[notice] Looks like our kernel doesn't have the support
for KIST anymore. We will fallback to the naive approach.
Remove KIST from the Schedulers list to disable.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
5% - 250 OK
250-status/bootstrap-phase=NOTICE BOOTSTRAP PROGRESS=5
TAG=conn SUMMARY="Connecting to a relay" 250 OK
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] Bootstrapped 80% (ap_conn):
Connecting to a relay to build circuits
[notice] Bootstrapped 85% (ap_conn_done):
Connected to a relay to build circuits
[notice] New control connection opened from 127.0.0.1.
[notice] Bootstrapped 89% (ap_handshake):
Finishing handshake with a relay to build circuits
[notice] New control connection opened from 127.0.0.1.
[notice] Bootstrapped 90% (ap_handshake_done):
Handshake finished with a relay to build circuits
[notice] Bootstrapped 95% (circuit_create):
Establishing a Tor circuit
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] New control connection opened from 127.0.0.1.
[notice] Bootstrapped 100% (done): Done
Tor seems to work great,but the IP changer icon is greyed out and can’t be clicked. I want to point your attention on this notice :
[notice] Looks like our kernel doesn’t have the support for KIST anymore. We will fallback to the naive approach. Remove KIST from the Schedulers list to disable.
because I suspect that KIST is not supported on the FreeBSD kernel,so I would like to disable it,but I don’t know how to do that. Maybe this is the reason for the fact that I can’t change IP with the script.
I read that there are different methods than KIST that TOR can use. One of them,vanilla,is not kernel based. I’m trying to understand how to enable it instead of KIST. What other problems are you thinking there could be ?