A couple of things felt missing but still it is better than the most, infact all! It is currently an alpha release of version 3.0 build, with only web-based GUI and 32bit release (requires 32bit libraries on x64 systems).
Here is a complete step by step installation guide:
Step 0: Pre-Requisites
According to the website:
System Requirements:utserver binary requires glibc-2.11 or newer. Do check this before continuing. To check your version of glibc:
- x86 Ubuntu 9.10+, Debian 5+, Fedora 12+
- Linux kernel 2.6.13 or newer required
rpm -q glibc(Note: If you have old libraries, or facing any library related error, I have a different guide for you HERE )
I am using a 32 bit Centos 6.2, but this guide should work with most linux distributions. If you are using a x64 distribution, you'll need to install all the 32 bit libraries.
In case of a 32 bit distro, there are hardly any dependencies to be installed. They are installed by default even in the minimal installations. Here is the list of dependencies anyway:
- glibc >= 2.11
- libgcc
- openssl
- krb5-libs
- libcom_err
- zlib
- keyutils-libs
- libselinux
yum install glibc libgcc openssl krb5-libs libcom_err zlib keyutils-libs libselinuxIf you are using a 64bit distro, install the 32bit libraries:
yum install glibc glibc.i[36]86 libgcc libgcc.i[36]86 openssl openssl.i[36]86 krb5-libs krb5-libs.i[36]86 libcom_err libcom_err.i[36]86 zlib zlib.i[36]86 keyutils-libs keyutils-libs.i[36]86 libselinux libselinux.i[36]86
Step 1: Make basic directories
I will keep it in /opt (ofcourse you can keep it anywhere feasible)
mkdir /opt/utorrent
mkdir /opt/utorrent/conf
mkdir /opt/utorrent/data
mkdir /opt/utorrent/pid
mkdir /opt/utorrent/webui
mkdir /opt/utorrent/log
Step 2: Download µTorrent Server
At the time of this writing, µTorrent Server alpha (3.0 build 25053) was the latest available one. You can find the latest release here. Download the package to a tmp location, extract and then copy the required files:
wget -O /tmp/utorrent-server-3.0-25053.tar.gz http://download.utorrent.com/linux/utorrent-server-3.0-25053.tar.gz
tar --directory /tmp -xzf /tmp/utorrent-server-3.0-25053.tar.gz
cp /tmp/utorrent-server-v3_0/utserver /opt/utorrent/
cp /tmp/utorrent-server-v3_0/webui.zip /opt/utorrent/webui/
Step 3: Libraries check
Before proceeding further, it will be a good idea to locate any missing libraries.
Use ldd command to find out any missing library:
ldd -r /opt/utorrent/utserverYou might get the following error:
/opt/utorrent/utserver: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directoryor
/opt/utorrent/utserver: error while loading shared libraries: libcrypto.so.0.9.8: cannot open shared object file: No such file or directoryIf openssl is installed properly, this might be because you have a newer version of the shared library. Creating a softlink should solve the problem.
First find out what version you have:
find /*/lib /*lib -type f -name "libssl.so.*"
find /*/lib /*lib -type f -name "libcrypto.so.*"This will show you the library you have installed, for example in my case it showed me that I've libssl.so.1.0.0 and libcrypto.so.1.0.0 installed:
[root@localhost ~]# find /*/lib /*lib -type f -name "libssl.so.*"Now simply create a soft link from the one you have to the one required by utserver:
/usr/lib/libssl.so.1.0.0
[root@localhost ~]# find /*/lib /*lib -type f -name "libcrypto.so.*"
/usr/lib/libcrypto.so.1.0.0
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.0.9.8
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.0.9.8(ofcourse you can always install the correct version of openssl instead of doing this softlink trick)
If every thing is fine you should get output some what like this:
[root@his apps]$ ldd -r /opt/utorrent/utserver(You can ignore the "no version information" warning). This shows every requirement is fulfilled and utorrent server can now run on this machine. Lets now do some final config tweaks.
/opt/utorrent/utserver: /usr/lib/libcrypto.so.0.9.8: no version information available (required by /opt/utorrent/utserver)
/opt/utorrent/utserver: /usr/lib/libssl.so.0.9.8: no version information available (required by /opt/utorrent/utserver)
linux-gate.so.1 => (0x0042c000)
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00cb8000)
libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x009dc000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00110000)
libm.so.6 => /lib/libm.so.6 (0x00800000)
librt.so.1 => /lib/librt.so.1 (0x001a2000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00465000)
libc.so.6 => /lib/libc.so.6 (0x001ab000)
/lib/ld-linux.so.2 (0x005a8000)
libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2 (0x00c25000)
libkrb5.so.3 => /lib/libkrb5.so.3 (0x0033b000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x0012b000)
libk5crypto.so.3 => /lib/libk5crypto.so.3 (0x00622000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00130000)
libdl.so.2 => /lib/libdl.so.2 (0x0045b000)
libz.so.1 => /lib/libz.so.1 (0x00767000)
libkrb5support.so.0 => /lib/libkrb5support.so.0 (0x004be000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00991000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0014a000)
Step 4: Create config file
In theory you can just run the utserver binary (like you did in the previous step), and utorrent server should be ready and useable. You don't necessarily need a config file But it is always a good idea to have a config file in hand, it'll make editing and experimenting with the configurations much easier and give you a lot more options to play with.
I wasn't able to find a complete and comprehensive config file. Users are either not using config file or using it just for a couple of options.
I've created this config file from the documentation and added all the options I found. All the directives are explained in the comments and set to the default value.
Here it is (only dir_root is set to /opt/utorrent/data all other values are default):
###########################################Don't worry most of the lines in the config are comments (only 34 directives in total). I recommend going through it once.
### ###
### Utorrent Server v3.0 Config File ###
### ###
### By Khizer Naeem ###
### khizernaeem@gmail.com ###
### Date: 29/12/2011 ###
### ###
###########################################
###########################################
# Note: - Don't use quotes or double quotes when giving a value
# - Don't add trailing / when specifying any directory
#####################
## Regular Settings #
#####################
#bind_port (integer):
# Default value: 6881. Port used for BitTorrent protocol. This can be any value in the range 1025-65000.
bind_port: 6881
#max_ul_rate (integer):
# Default value: -1. Maximum total upload rate in kilobytes per second. -1 means unlimited. We recommend setting it to -1.
max_ul_rate: -1
#max_ul_rate_seed (integer):
# Default value: -1. Maximum per-torrent upload rate when seeding, in kilobytes per second. -1 means unlimited. We recommend setting it to -1.
max_ul_rate_seed: -1
#conns_per_torrent (integer):
# Default value: 50. Maximum number of connections for a given torrent.
conns_per_torrent: 50
#max_total_connections (integer):
# Default value: 200. Maximum number of connection opened at the same time.
max_total_connections: 200
#auto_bandwidth_management (boolean):
# Default value: true. If true, upload bandwidth is automatically throttled in order to not impact other applications using TCP/IP.
auto_bandwidth_management: true
#max_dl_rate (integer):
# Default value: -1. Maximum total download rate in kilobytes per second. -1 means unlimited. We recommend setting it to -1.
max_dl_rate: -1
#seed_ratio (integer):
# Default value: 0. Seed ratio in percent (%) (e.g. 100 means 100%). If not 0, seeding will stop after reaching this upload/download ratio.
seed_ratio: 0
#seed_time (integer):
# Default value: 0. Time after which seeding will stop, in seconds. 0 means seeding won't stop.
seed_time: 0
#####################
# Internal Settings #
#####################
#bind_ip (string):
# IP address to use for socket connections. If not provided, a default IP address will be used. We do not recommend changing this value.
#ut_webui_port (integer):
# Default value: 8080. Port number where the utserver process accepts HTTP RPC API calls to support the µTorrent-compatible HTTP interface.
ut_webui_port: 8080
#token_auth_enable (boolean)
# Default value: true. If true, the µTorrent HTTP interface defends against cross-site request forgeries.
# If false, the µTorrent HTTP interface will not be protected in this manner.
token_auth_enable: true
#dir_root (string):
# Default value: "". If not empty, dir_active, dir_completed, and dir_torrent_files are relative to this directory.
dir_root:/opt/utorrent/data
#dir_active (string):
# Default value: "./". Directory in which currently downloaded data is saved.
# Can be an absolute path or relative to dir_root or the current working directory if dir_root is not defined or an empty string.
#dir_active: ./
#dir_completed (string):
# Default value: "". Directory where completed downloads are stored.
dir_completed:
#dir_download (string):
# Default value: "". Optional directory where completed downloads can be stored, instead of in dir_completed.
# If no value is specified for this setting, the value of dir_completed is used.
# This option can be specified multiple times in the file - once for each directory to be designated as such.
# This option can be used when adding torrents via the µTorrent HTTP interface, not via the SDK interface.
# Use the action list-dirs to obtain a list of download directories from the µTorrent HTTP interface.
# Use the option download_dir to specify which of these directories to use when adding a torrent by URL or file through the µTorrent HTTP interface;
# The index of each entry will be in order in which each entry appears in utserver.conf
dir_download:
#dir_torrent_files (string):
# Default value: "". Directory where torrent files are stored. If the empty string, the value of dir_active is used.
dir_torrent_files:
#dir_temp_files (string):
# Default value: "". Directory where temporary files are stored. If the empty string, the value of dir_active is used.
# Using a separate directory just for temporary files allows for deleting the files in this directory on boot and/or periodically.
# The utserver process creates temporary files with a .utt extension,
# if a value for this setting is specified, the utserver process will delete all files with that extension in that directory at process startup.
# The value should specify a directory, not a symbolic link to a directory.
dir_temp_files:
#dir_autoload (string):
# Default value: "". Directory where torrent files will be recognized and auto-loaded. If the empty string, auto-load is disabled.
dir_autoload:
#dir_autoload_delete (boolean):
# Default value: false. If true, torrent files in the autoload directory will be deleted after being loaded,
# else they will be renamed with an extension of .loaded. The dir_autoload setting must be specified for this setting to have an effect.
dir_autoload_delete: false
#upnp (boolean):
# Default value: true. If true, UPNP functionality for mapping ports is used by utserver. We recommend setting this value to true.
upnp: true
#natpmp (boolean):
# Default value: true. If true, NAT-PMP functionality for mapping ports is used by utserver. We recommend setting this value to true.
natpmp: true
#lsd (boolean):
# Default value: true. If true, Local Service Discovery is enabled. We recommend setting this value to true.
lsd: true
#dht (boolean):
# Default value: true. If true, Distributed Hash Table extension is enabled. We recommend setting this value to true.
dht: true
#pex (boolean):
# Default value: true. If true, Peer Exchange extension is enabled. We recommend setting this value to true.
pex: true
#rate_limit_local_peers (boolean):
# Default value: false. If true, rate limiting also applies to communications with peers in the local subnet. We recommend setting this value to false.
rate_limit_local_peers: false
#disk_cache_max_size (integer):
# Default value: 0. Maximum amount of memory used by each of the read, write, and piece caches. Value is in megabytes.
# If 0, accepts the SDK's default choices on selecting sizes of disk caches. Maximum value is 512.
disk_cache_max_size: 0
#preferred_interface (string):
# Default value: "". If defined, name of network interface to be preferred,
# when attempting to search among network interfaces for an external IP and hardware address.
# If empty string, preferred interface is ignored.
preferred_interface:
#admin_name (string):
# Default value: "admin". If defined, name that must be supplied (along with the password) when authenticating to the server via the HTTP interface.
# This allows the administrator to define an initial non-default value for this name.
# This value will not be applied from utserver.conf if settings.dat already exists.
admin_name: admin
#admin_password (string):
# Default value: "". If defined, password that must be supplied (along with the name) when authenticating to the server via the HTTP interface.
# This allows the administrator to define an initial non-default value for this password.
# This value will not be applied from utserver.conf if settings.dat already exists.
admin_password:
#logmask (integer):
# Default value: 0. A mask whose bits when set allow certain categories of log messages to be generated.
# The bits (0 - 31) in the value of this setting correspond to a set of internal events and subsystems.
#
# 3 - send have
# 6 - hole punch
# 7 - got bad piece request
# 8 - trace
# 9 - piece picker
# 10 - got bad cancel
# 11 - got bad unchoke
# 12 - got bad piece
# 13 - rss
# 14 - rss error
# 15 - got have
# 16 - got bad have
# 17 - error
# 18 - aggregated
# 19 - disconnect
# 20 - out connect
# 21 - in connect
# 22 - UPnP
# 23 - UPnP error
# 24 - NATPMP
# 25 - NATPMP error
# 26 - metadata finish
# 27 - web UI
# 28 - got bad reject
# 29 - pex
# 30 - peer messages
# 31 - blocked connect
logmask: 0
#dir_request (string):
# Default value: "". Directory where maintenance request files will be recognized, loaded, and deleted.
# If the empty string, maintenance request handling is disabled.
#
# Your software running on your device can create the following files in this directory in order to request the following maintenance procedures.
#
# If the file c.utmr is created in or moved into this directory,
# the credentials necessary to access the µTorrent HTTP interface will be reset to username admin and a blank password.
#
# If the file wipl.utmr is created in or moved into this directory,
# the IP restriction list that limits the IPs that can use the µTorrent HTTP interface is cleared,
# so that there will be no restrictions on IP address.
#
# If the file rcf.utmr is created in or moved into this directory,
# the server will reload the configuration file. If you always use this method to request a configuration file reload,
# you can safely change the value of this setting while the server is running.
#ut_webui_dir (string):
# Default value: "". Directory where the web UI file archive webui.zip is stored,
# or which contains a webui subdirectory within which the unarchived web UI files are stored.
# It can be an absolute path or set relative to the current directory.
ut_webui_dir:
#finish_cmd (string), state_cmd (string):
# Default value: "". If defined,
# finish_cmd is a command that will be executed upon completion of each torrent.
# state_cmd is a command that will be executed when a torrent changes state.
# The command is run asynchronously as the same user that runs the server process.
#
# The server permits substitutions in the command text as follows:
#
# %F Name of downloaded data file (for single-file torrents)
# %D directory where torrent data files are saved
# %N torrent title
# %S torrent state
# %P previous state of torrent
# %L label associated with torrent
# %T tracker
# %M status message
# %I hex-encoded info-hash
#
# State (%S) and previous state (%P) are integers that have the following values:
#
# 1 (error)
# 2 (checked)
# 3 (paused)
# 4 (super seeding)
# 5 (seeding)
# 6 (downloading)
# 7 (super seeding (forced))
# 8 (seeding (forced))
# 9 (downloading (forced))
# 10 (queued seed)
# 11 (finished)
# 12 (queued)
# 13 (stopped)
finish_cmd:
state_cmd:
Copy-Paste this configuration into the file utserver.conf in /opt/utorrent/conf/ directory using your favourite text editor like vim or download it directly:
wget -O /opt/utorrent/conf/utserver.conf http://kxr.me/blog/uts/utserver.conf
Now you can start the utorrent server with the following command:
/opt/utorrent/utserver -settingspath "/opt/utorrent/webui/" -configfile "/opt/utorrent/conf/utserver.conf" -logfile "/opt/utorrent/log/ut.log" -pidfile "/opt/utorrent/pid/utserver.pid" -daemonand stop it with:
kill `cat /opt/utorrent/pid/utserver.pid`That is not very convenient, so lets create a script to make things easier.
#!/bin/shCreate a file called utsctl in /opt/utorrent and copy-paste the code into it using your favourite editor or download it directly:
uts_bin="/opt/utorrent/utserver"
pid_file="/opt/utorrent/pid/utserver.pid"
settings_path="/opt/utorrent/webui/"
config_file="/opt/utorrent/conf/utserver.conf"
log_file="/opt/utorrent/log/ut.log"
start(){
if [ -s "$pid_file" ]
then
kill -s 0 `cat $pid_file` > /dev/null 2>&1
if [ "$?" == "0" ]
then
echo "Err: Utorrent seems to be running, PID `cat $pid_file`"
else
echo "Starting Utorrent Server.."
cd $settings_path;$uts_bin -settingspath $settings_path -configfile $config_file -logfile $log_file -pidfile $pid_file -daemon
fi
else
echo "Starting Utorrent Server.."
cd $settings_path;$uts_bin -settingspath $settings_path -configfile $config_file -logfile $log_file -pidfile $pid_file -daemon
fi
}
stop(){
if [ -s "$pid_file" ]
then
kill -s 0 `cat $pid_file` > /dev/null 2>&1
if [ "$?" == "0" ]
then
echo "Stopping Utorrent Server.."
kill `cat $pid_file`
tail -f /dev/null --pid `cat $pid_file`
rm -f $pid_file
else
echo "Err: Utorrent seems to be stopped, PID file $pid_file not found or empty"
fi
else
echo "Err: Utorrent seems to be stopped, PID file $pid_file not found or empty"
fi
}
status(){
if [ -s "$pid_file" ]
then
kill -s 0 `cat $pid_file` > /dev/null 2>&1
if [ "$?" == "0" ]
then
echo "Utorrent seems to be running, PID `cat $pid_file`"
else
echo "PID file present, but no process with PID `cat $pid_file` running"
fi
else
echo "Utorrent seems to be stopped, PID file $pid_file not found or empty"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
stop
rm -vf $settings_path/settings.dat*
start
;;
status)
status
;;
*)
echo "Usage $0 {start|stop|reload|status}"
;;
esac
wget -O /opt/utorrent/utsctl http://kxr.me/blog/uts/utsctlOnce you have created this script file, lets make it executeable:
chmod +x /opt/utorrent/utsctlAnd also make it easily accessible, so that we don't have to type the whole path again and again:
ln -s /opt/utorrent/utsctl /usr/bin/utsctlNow starting stoping and checking the status is as easy as this:
utsctl start
utsctl stop
utsctl status
Step 5: Start µTorrent Server
Lets now start the utorrent server:
utsctl startIt should output "server started - using locale en_US.UTF-8" and return back to bash prompt. (Optionally, you can add this command to rc.local to auto-start it at startup)
You should now be able to access the utorrent server gui on localhost:
http://localhost:8080/guior via the ipaddress/hostname if accessing from a remote computer:
http://1.2.3.4:8080/gui(don't forget to allow this port in the system's iptable firewall and any other firewall in between)
Here is a screen-shot:
Playing with the configuration:
When you change a configuration in utserver.conf, just restarting the utserver daemon won't update the changes in WebUI. You'll have to remove the settings.dat files and then start the server again i.e,
utsctl stopI've added the "reload" option in the utsctl script that will do all these three things:
rm -f /opt/utorrent/webui/settings.dat*
utsctl start
utsctl reload
Good Luck :)
Questions/Suggestions/Comments/Corrections/Additions about this HowTo are welcome.
This comment has been removed by a blog administrator.
ReplyDeleteI appreciate your dedication to thoroughness. You've created a spot on tutorial here.
DeleteThanks
Deleteyour soft link doesnt work correctly or it`s just other problem in my case ((
ReplyDeleteln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.0.9.8
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.0.9.8
after this commands i try to start my utorr server:
/opt/utorrent/utserver: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory
P.S. openSUSE 12.1
maybe theese libraries should be updated before when i applied theese commands?:
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.0.9.8
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.0.9.8
What is the output of:
Deletefind /*/lib /*lib -type f -name "libssl.so.*"
and
find /*/lib /*lib -type f -name "libssl.so.*"
in first command:
ReplyDelete/lib/libssl.so.1.0.0
and in the second case we have this:
/lib/libssl.so.1.0.0
wheres difference between theese commands which u show me? or maybe i didnt understand u properly? your idea its..?
I think I found the problem, in redhat/centos systems the libssl and libcrypto are in /usr/lib, in your case (openSuse) its in /lib. So These commands should work for you:
Deleteln -s /lib/libssl.so.1.0.0 /lib/libssl.so.0.9.8
ln -s /usr/libcrypto.so.1.0.0 /lib/libcrypto.so.0.9.8
I hope this helps :)
yes its true what u say about system directories for my os.
ReplyDeletethen i used 2 commands which u show me:
ln -s /lib/libssl.so.1.0.0 /lib/libssl.so.0.9.8
ln -s /usr/libcrypto.so.1.0.0 /lib/libcrypto.so.0.9.8
but first way to libssl 098 i have
and the second way doesnt exist because i cant find this file in way that u show me: ibcrypto.so.1.0.0
and i didnt found him with search
so what`s now?
WOW! i found him!
ReplyDeletethe way is here: /lib/libcrypto.so.0.9.8 -> /usr/libcrypto.so.1.0.0
libcrypto.so.1.0.0
))
/lib/libcrypto.so.0.9.8 -> /usr/libcrypto.so.1.0.0
ReplyDeletethere's an error occurred isn't it?
and highlighting in red in console mode..
this should be corrected.. but how?)
ln: failed to create a symbolic link «/lib/libcrypto.so.0.9.8»: The file exists
ReplyDeleteand first case i have: libssl.so.0.9.8 -> /lib/libssl.so.1.0.0 without error and red highlight
Whats the output of
Deletefind /*/lib /*lib -type f -name "libcrypto.so.*"
/lib/libcrypto.so.1.0.0
Deletewell.. its finally complete to create server but now i have new trouble with him )))
ReplyDeletehttp://localhost:8080/gui
when i trying to connect to him through google chrome, he asks me about my login and password, but when i enter requested data into the form - then utorr dont accepting this data and repeat his request.. and this is iterate (i mean cycle)
and yes, I forgot tell you - the server successfully started and works - it is viewed into the system monitor
ReplyDeletelol!! i look at conf file and see whats the problem i have with login and pwd ))))
ReplyDeleteThanks a lot for all!
Hi
ReplyDeleteNewbie in linux, I try to work utorrent in xubuntu 11.10, the error was"./utserver: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory", and no chance to fix-it.
I try everything from here but failed.
What can I do?
Thanks
What is the output of:
Deletefind /*/lib /*lib -type f -name "libssl.so.*"
and
find /*/lib /*lib -type f -name "libcrypto.so.*"
A how to very good!!
ReplyDeleteI prefer run the utserver with a user specific (utorrent in my case) to avoid security problems:
In Step 1
useradd utorrent -d /opt/utorrent -s /bin/bash
In Step 4
Change permision:
chown utorrent:utorrent /opt/utorrent
And add in init script:
!/bin/sh
shell_user="utorrent"
uts_bin="/opt/utorrent/utserver"
pid_file="/opt/utorrent/pid/utserver.pid"
settings_path="/opt/utorrent/webui/"
config_file="/opt/utorrent/conf/utserver.conf"
log_file="/opt/utorrent/log/ut.log"
start(){
if [ -s "$pid_file" ]
then
kill -s 0 `cat $pid_file` > /dev/null 2>&1
if [ "$?" == "0" ]
then
echo "Err: Utorrent seems to be running, PID `cat $pid_file`"
else
echo "Starting Utorrent Server.."
su -c "$uts_bin -settingspath $settings_path -configfile $config_file -logfile $log_file -pidfile $pid_file -daemon" $shell_user
fi
else
echo "Starting Utorrent Server.."
su -c "$uts_bin -settingspath $settings_path -configfile $config_file -logfile $log_file -pidfile $pid_file -daemon" $shell_user
fi
}
..... (the same of original script)
Nice, Very thoughtful indeed! In my case I am running it behind closed ports (NAT) so running it as a root user didn't bothered me :)
DeleteThanks for this script!
DeleteI'm getting an error with the su when I run utsctl start. It asks me for a password (not the admin/no-password defined in the conf file) and then gives an authentication failure when I can't provide one.
DeleteOutput looks like this:
$ utsctl start
/usr/bin/utsctl: 15: [: 1: unexpected operator
Starting Utorrent Server..
Password:
su: Authentication failure
Btw, I created the user as you did - "useradd utorrent -d /opt/utorrent -s /bin/bash" and then deleted the user and tried again with "useradd -r utorrent -d /opt/utorrent -s /bin/bash" to make it a system (no password, no login) account.
I tried a number of other flags (e.g., "-M" for no password) but still have the same problem. I'm going to remove the utorrent user stuff, but that's too bad because it looked cleaner.
2 things - I didn't resolve the authentication error (yet? - I may or may not try that again), but my output pasted above had another error in it that I just solved.
DeleteThe line:
"/usr/bin/utsctl: 15: [: 1: unexpected operator"
is happening because utsctl is calling #!/bin/sh rather than #!/bin/bash. sh and bash use different syntax for comparisons. Running this in bash works perfectly for me.
Everithing work fine (Very correct manual). Look at utserver.conf for username and passw. Thanks.
ReplyDeletegreat job bro
ReplyDeleteHello,
ReplyDeleteI can' chmod +x /opt/utorrent/utsctl.
op: chmod: cannot access `/opt/utorrent/utsctl': No such file or directory
How to solve this problem.
looks like you don't have the script in place. What is the ouput of "ls -lah /opt/utorrent"?
Delete[root@******* /]# utsctl status
ReplyDeleteUtorrent seems to be stopped, PID file /opt/utorrent/pid/utserver.pid not found or empty
I'm getting that error can you help me.
This means utorrent is not running. Start utorrent server by "utsctl start".
DeleteSorry Sir I forgot to mention when I did that Is getting stopped and when I check the status I got that line
ReplyDelete[root@****** /]# utsctl start
ReplyDeleteStarting Utorrent Server..
/usr/bin/utsctl: line 21: -settingspath: command not found
[root@****** /]# utsctl status
Utorrent seems to be stopped, PID file /opt/utorrent/pid/utserver.pid not found or empty
There seem to be some problem in the script. Are you sure the script is fine?
DeleteCan you compare your script (/opt/utorrent/utsctl) with this one: (http://configs.ucoz.com/ut30/utsctl.sh.orig).
Just to be sure run the following command:
wget -O /opt/utorrent/utsctl http://configs.ucoz.com/ut30/utsctl.sh.orig
and try again
It's not allowing me to paste the whole log so I'm doing it on pastebin please have a look at it.
ReplyDeleteLink : http://tinypaste.com/0bb120a0
This is what I'm getting Sir,Sorry I'm a noob in Linux,I just need a torrent on my vps to seed some of my torrents
Can you help me sir ?
Oh, I think you are using an old distribution.
Deleteremove the old setup: ("rm -rf /opt/utorrent")
And then follow this guide: http://blog.kxr.me/2012/01/utorrent-on-centos-5-glibc211-not-found.html
This comment has been removed by the author.
ReplyDeletenice
ReplyDeleteAwesome, thank you for this! I saw a post on uTorrent's forums linking here, and they were right. I followed your instructions and it worked brilliantly! No errors, no problems! Thank you once again!
ReplyDeleteRegards,
~kyleey.
Thank you, this worked perfectly on OpenSUSE 12.1
ReplyDeleteHello
ReplyDeletewhat are the steps to install in LinuxMint 13 derived form Ubuntu 12.04?
Thanks
Gae
Step should be pretty much the same except the yum and the rpm part in the beginning. In case of Mint you can simply skip those steps (because I think you'll have those packages by default), if you find any missing package, install it with apt-get. Rest of the steps should be the same.
DeleteThanks man I used this before and it was working like charm. but now i have to install it again but I have problem with login detail.
ReplyDeleteas before i used this:
username: admin
pass : [blank]
but it isn't working now. why is that for? what should i do?
thanks
That is very odd! Try the following:
Delete- Double check the utsserver.conf, make sure the admin_name directive is set to "admin" and admin_password directive is blank. You can re-download the config file [wget -O /opt/utorrent/conf/utserver.conf http://kxr.me/blog/uts/utserver.conf]. Try reloading the configuration by [utsctl reload]
- If none of that works, try starting the utserver without any configuration, remove the configuration file [rm /opt/utorrent/conf/utserver.conf; touch /opt/utorrent/conf/utserver.conf], and then do a utsctl reload. See if this works.
non of those works
Deletewhat should i do man? please help!
DeleteI installed it once. and again i removed the utserver directory and then reinstalled it. but i have problem with username and password.
!!!!
How about you set a simple password in the configuration file and try accessing it with that password?
Deletei tried that but it was not working too.
Deleteis there any way to find out what is the matter with this?
Well you can try removing the /opt/utorrent [rm -vrf /opt/utorrent], and redo all the steps from the beginning
Deletei did it too. but nothing
DeleteWell I am running out of options. I suspect you are doing some thing wrong. It will be really hard for me to debug that here. You can try the utorrent help forums. If there is way you can give me remote access, may be I can help you out, if so, email me @ khizernaeem [@] gmail
Deletethanks for answering...
Deletecan u solve this problem?
Well I can try, at least I can look into it.
DeleteI emailed u with subject : Nima Azizzadeh
Deletethanks again
Problem solved :). Check your inbox for details, you were running some old instances, that weren't getting killed.
DeleteHey there, thanks so much for making this! I'm an absolute newbie at linux and when it had me simply download the file without any instructions, I was just a bit stunned... Anyway, I've figured most of it out, but I seem to be stuck at the very end. When I try to start utsctl I get the following:
ReplyDeleteAnne@Bit ~ $ utsctl start
Starting Utorrent Server..
/opt/utorrent/utserver: /lib/libcrypto.so.0.9.8: no version information available (required by /opt/utorrent/utserver)
/opt/utorrent/utserver: /usr/lib/libssl.so.0.9.8: no version information available (required by /opt/utorrent/utserver)
server started - using locale en_US.utf8
Anne@Bit ~ $ server exited with 1
The last line follows directly on the ones above it. Can you help me?
Thanks so much!
Which linux distribution are you using? Can you paste the output of utorrent log? If you followed the instructions of this how-to, the log should be in /opt/utorrent/log/ut.log
Deletei have same problem as Anne Fluitman and this is my log:
Delete01:11:19] Using locale en_US.UTF-8
[01:11:19] GetNodeID failed, using /dev/random
[01:11:19] total physical memory -1 max disk cache 33554432
[01:11:19] File not found during integrity check: /opt/utorrent/webui//dht.dat
[01:11:19] File not found during integrity check: /opt/utorrent/webui//dht.dat.new
[01:11:19] File not found during integrity check: /opt/utorrent/webui//dht.dat.old
[01:11:19] File not found during integrity check: /opt/utorrent/webui//rss.dat
[01:11:19] File not found during integrity check: /opt/utorrent/webui//rss.dat.new
[01:11:19] File not found during integrity check: /opt/utorrent/webui//rss.dat.old
[01:11:19] Loaded ipfilter.dat (0 entries)
[01:11:19] IPv6 is installed
[01:11:19] File not found during integrity check: /opt/utorrent/webui//resume.dat
[01:11:19] File not found during integrity check: /opt/utorrent/webui//resume.dat.new
[01:11:19] File not found during integrity check: /opt/utorrent/webui//resume.dat.old
[01:11:24] File not found during integrity check: /opt/utorrent/webui//webcache.dat
[01:11:24] File not found during integrity check: /opt/utorrent/webui//webcache.dat.new
[01:11:24] File not found during integrity check: /opt/utorrent/webui//webcache.dat.old
can you double check:
Delete1- Config file (use the wget method if you copy-pasted the config file).
2- File permissions (try "chmod -R 777 /opt/utorrent")
3- Make sure selinux is not interrupting
For buntu or non fedora users i guess
ReplyDeletedon't use the soft link, just install libssl0.9.8 using apt-get
fixed my problem
Thank you for the info :)
DeleteThis comment has been removed by a blog administrator.
DeleteThis comment has been removed by a blog administrator.
DeleteThis comment has been removed by the author.
ReplyDeletePlease could you help me in uninstalling it and removing all files I have downloaded or used in the process. Sorry for being a n00b in Linux.
ReplyDeleteThanks man! still working in 2013 ! :-)
ReplyDeleteGood to know :)
DeleteHello how can I change the directory from /opt/utorrent/data to /home/down ?
ReplyDeleteIn the configuration file, set the following variables:
Delete- Keep dir_root empty (other wise all other paths would be relative to this)
- Set dir_active and dir_completed to /home/down
Thanks it works
ReplyDeleteHow can I use ip filter server in utorrent?
ReplyDeletewhen i type utsctl stop does it make xxx.com:8080/gui unreachable or still open?
ReplyDeleteif someone ask installing in ubuntu, the script have to change this part
ReplyDeleteif [ "$?" == "0" ]
to
if [ $? = 0 ]
Or change #/bin/sh to #/bin/bash
ReplyDeleteHello, may I ask you how to change the listening port from 8080 to another port? I change ut_webui_port to 7777 (example) and it doesn't work at all.
ReplyDeleteI need advice..
Thanks
Hi this does not work for me on centos 6.4
ReplyDeleteI symlinked to the libs but it still does not start, I have also tried the "e" versions
libssl.so.0.9.8 -> /usr/lib/libssl.so.1.0.0
libcrypto.so.0.9.8 -> /usr/lib/libcrypto.so.1.0.0
find /*/lib /*lib -type f -name "libssl.so.*"
/usr/lib/plexmediaserver/libssl.so.1.0.0
/usr/lib/libssl.so.0.9.8e
/usr/lib/libssl.so.1.0.0
find /*/lib /*lib -type f -name "libcrypto.so.*"
/usr/lib/plexmediaserver/libcrypto.so.1.0.0
/usr/lib/libcrypto.so.0.9.8e
/usr/lib/libcrypto.so.1.0.0
ldd -r /opt/utorrent/utserver
linux-vdso.so.1 => (0x00007fff15023000)
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003026200000)
libm.so.6 => /lib64/libm.so.6 (0x0000003026600000)
librt.so.1 => /lib64/librt.so.1 (0x0000003027200000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000302ba00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003025e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003025600000)
undefined symbol: SSL_CTX_free, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_library_init, version OPENSSL_0.9.8 (/opt/utorrent/u tserver)
undefined symbol: BIO_read, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_CTX_new, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_load_error_strings, version OPENSSL_0.9.8 (/opt/utorrent/u tserver)
undefined symbol: SSL_free, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_new, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_connect, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_s_mem, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_test_flags, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: OPENSSL_add_all_algorithms_noconf, version OPENSSL_0.9.8 ( /opt/utorrent/utserver)
undefined symbol: SSL_write, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_read, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_new, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_write, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_ctrl_pending, version OPENSSL_0.9.8 (/opt/utorrent/u tserver)
undefined symbol: SSLv23_client_method, version OPENSSL_0.9.8 (/opt/utorrent/u tserver)
undefined symbol: SSL_set_bio, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_state, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: ERR_get_error, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: ERR_load_BIO_strings, version OPENSSL_0.9.8 (/opt/utorrent/u tserver)
undefined symbol: ERR_reason_error_string, version OPENSSL_0.9.8 (/opt/ut orrent/utserver)
Dude! I appreciate very much what you've done here.
ReplyDeleteThanks for taking the time. You saved a lot of mine hehehe.
May the force be with you!
always using and working :D
ReplyDeletetested work properly on centos 6.4 :D
hey guys, it's asking for username password,
ReplyDeleteWhich one i have to use for it.
Reply soon as possible..........
The default user is admin with no password. You can set the password in /opt/utorrent/conf/utserver.conf, if you do so don't forget to do a "utsctl reload".
DeleteSo i did everything the guide says and the symbolic links worked well but now i have this problem:
ReplyDeletewhen running: /etc/init.d/utserver start
I get the following output:
[....] Starting uTorrent Server: utserver/usr/bin/utserver: /usr/lib/x86_64-linux-gnu/libcrypto.so.0.9.8: version `OPENSSL_0.9.8' not found (required by /usr/bin/utserver)
/usr/bin/utserver: /usr/lib/x86_64-linux-gnu/libssl.so.0.9.8: version `OPENSSL_0.9.8' not found (required by /usr/bin/utserver)
failed!
I linked the libcrypto and libssl using the commands above but i had to change the directories to fit with my os which is debian by the way.
Any help would be appericated. I did not get past starting the server because it never worked.
If you are running it on a 64 bit OS, try this: http://blog.kxr.me/2013/08/stand-alone-utorrent-server-x64-64bit.html
DeleteHere is the output from the ldd by the way:
Deletelinux-gate.so.1 => (0xf7773000)
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7736000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf7710000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf7707000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf76ea000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf7587000)
/lib/ld-linux.so.2 (0xf7774000)
undefined symbol: SSL_CTX_free, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_library_init, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_read, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_CTX_new, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_load_error_strings, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_free, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_new, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_connect, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_s_mem, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_test_flags, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: OPENSSL_add_all_algorithms_noconf, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_write, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_read, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_new, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_write, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: BIO_ctrl_pending, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSLv23_client_method, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_set_bio, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: SSL_state, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: ERR_get_error, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: ERR_load_BIO_strings, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
undefined symbol: ERR_reason_error_string, version OPENSSL_0.9.8 (/opt/utorrent/utserver)
Hi, how can I autorun utorrent on boot ?
ReplyDelete1. cd /etc/rc.d
ReplyDelete2. vi rc.local
3. and add this line:
utsvtl start
??!!
Deleteähm you mean :
utsctl start
thank you
I installed it and everything work fine. But one error is: I download a file, then restart my server and go back, my file are downloading before go to error and can't download again.
ReplyDeleteThank for any help.
Hi, thanks for the tutorial. I've followed it to the letter and got exactly the same output as shown here and
ReplyDeletelaunching utsctl start gets me :
Starting Utorrent Server..
/opt/utorrent/utserver: /usr/lib/libcrypto.so.0.9.8: no version information available (required by /opt/utorrent/utserver)
/opt/utorrent/utserver: /usr/lib/libssl.so.0.9.8: no version information available (required by /opt/utorrent/utserver)
server started - using locale en_US.utf8
which should be fine, but the problem is, the processor hangs and no GUI shows up, i don't know what went wrong, can you help? thanks
by the way i'm using CentOS 6.4 on a 64bit AMD laptop
ReplyDeleteHi Khizer
ReplyDeleteThank you for this...
I have a problem. I would be appreciated if you help me...
I installed it and it absolutely workes but when i added a file for downloading, nothing happened. the progress wont go forward and will stay on %0. can u tell me how can I solve this issue?
thank you
hello my server CentOS 5.6 Minimal (32Bit) problem
ReplyDeletewhy problem help me pls
[root@91 ~]# utsctl start
Starting Utorrent Server..
/opt/utorrent/utserver: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory
hello my server REDHAT 6.4 (64bit)
ReplyDeletewhen i try to access utorrent on localhost "http://localhost:8080/gui"
it ask for user name and password "A username and password are being requested by http://localhost:8080. The site says: "uTorrent""
please help me to sort out this problem
Thanks dude. I have installed uTorrent in my CentOS 6.4 server. Now I want to generate uTorrent link so that I can share my files to everyone. In windows this is easy and working. But in CentOS, when I press the same button to generate link, the box come for "Add RSS feed" and requires feed URL. Could you please tell me how could I generate uTorrent file?
ReplyDeleteHello,
ReplyDeleteI ve got new problem here:
I have new version of Openssl with this files:
libcrypto.so.10
libcrypto.so.1.0.1e
libssl.so.10
libssl.so.1.0.1e
When I create new links :
ln -s /usr/lib/libssl.so.1.0.1e /usr/lib/libssl.so.0.9.8
ln -s /usr/lib/libcrypto.so.1.0.1e /usr/lib/libcrypto.so.0.9.8
and try to start uTorrent I get error:
/opt/utorrent/utserver: /usr/lib/libcrypto.so.0.9.8: version `OPENSSL_0.9.8' not found (required by /opt/utorrent/utserver)
/opt/utorrent/utserver: /usr/lib/libssl.so.0.9.8: version `OPENSSL_0.9.8' not found (required by /opt/utorrent/utserver)
What I can do ? I need to replace my Openssl installation ?
Mee too. Please help me!
ReplyDeleteAnonymousDecember 6, 2013 at 11:43 AM
Hello,
I ve got new problem here:
I have new version of Openssl with this files:
libcrypto.so.10
libcrypto.so.1.0.1e
libssl.so.10
libssl.so.1.0.1e
When I create new links :
ln -s /usr/lib/libssl.so.1.0.1e /usr/lib/libssl.so.0.9.8
ln -s /usr/lib/libcrypto.so.1.0.1e /usr/lib/libcrypto.so.0.9.8
and try to start uTorrent I get error:
/opt/utorrent/utserver: /usr/lib/libcrypto.so.0.9.8: version `OPENSSL_0.9.8' not found (required by /opt/utorrent/utserver)
/opt/utorrent/utserver: /usr/lib/libssl.so.0.9.8: version `OPENSSL_0.9.8' not found (required by /opt/utorrent/utserver)
What I can do ? I need to replace my Openssl installation ?
Reply
Hi,
ReplyDeleteDid you find fix for above fix, i am also getting same issue.
./utserver: /lib64/libssl.so.0.9.8: version `OPENSSL_0.9.8' not found (required by ./utserver)
./utserver: /lib64/libcrypto.so.0.9.8: version `OPENSSL_0.9.8' not found (required by ./utserver)
Hello, I'm under linux mint 16 and I've got utorrent-server-v3_0, is there a start/stop script I can use for it? if not, is there a possibility you may want to write one for it and share?
ReplyDeleteIf not, should I install your version?
Thank you
anyway I finally ended installing the (I guess) previous version of yours, it works just perfect! congrats!
DeleteBy the way... I was kind of scared when I first saw kxr-me in the download tray after I tried to download it firstly effortlessly with 404 error at first and empty files later to finally find it ok and proper. king takes rook, as I guess it stands for, seemed to me like a cibernetic gang stalking joke. I'm a bit concerned about these things those days... too many experiences! call me skizo... but... there's something more haha :s have a good journey!
DeleteHi, when I do utsctl stop and then try to shut down linux, it stucks with black screen and doesn't shut down... what can be happening?
ReplyDeleteI forgot to tell, when I force the shutting and start it over, utorrent doesn't work and utsctl start gives me this:
Delete~ $ utsctl start
Starting Utorrent Server..
server started - using locale en_US.UTF-8
~ $ server exited with 1
đồng tâm
ReplyDeletegame mu
cho thuê nhà trọ
cho thuê phòng trọ
nhac san cuc manh
số điện thoại tư vấn pháp luật miễn phí
văn phòng luật
tổng đài tư vấn pháp luật
dịch vụ thành lập công ty trọn gói
nước cờ trên bàn thương lượng
mbp
erg
nghịch lý
chi square test
nghệ thuật nói chuyện
coase
thuyết kỳ vọng
chiến thắng con quỷ trong bạn
cân bằng nash
Thái Chánh Dương thấy Triệu Quốc Đống xác định rõ ràng như vậy cũng yên tâm. Nói thật lúc này Cao tốc An Du cùng Cao tốc An Quế có thể thu hút đầu tư từ ngoài vào, một phần nguyên nhân là do chiêu đột biến của Triệu Quốc Đống. Đương nhiên trong này cũng có phần may mắn, nhưng dù sao cũng đã thành công.
Việc các tập đoàn có hứng thú đầu tư vào An Nguyên, theo Tô Giác Hoa nói đó là thành tích rất lớn. Bây giờ muốn thành lập Công ty khai thác đường cao tốc mà để Triệu Quốc Đống là công thần đứng sang bên đó là hơi quá. Cho nên Thái Chánh Dương muốn biết ý của hắn.
- Thái ca, em nói thật đó. Anh đừng nghĩ em tức mà nói như vậy. Em không thích làm kinh doanh, nhất là Công ty khai thác đường cao tốc có bao người nhìn chằm chằm vào.
Triệu Quốc Đống đây là nói thật. Công ty khai thác đường cao tốc là tâm điểm, ai vào đó thì tóc gáy sẽ bị dựng thẳng lên. Hắn không việc gì phải vào đó. Hắn cũng không muốn kiếm chút tiền từ đó. Nếu muốn tiền thì hắn cũng không việc gì đi vào quan trường.
Thái Chánh Dương có chút kinh ngạc. Y có thể thấy Triệu Quốc Đống thật sự không muốn tới Công ty khai thác đường cao tốc, điều này làm người ta rất khó hiểu. Đây là nơi mà bao người muốn đến, không ít người đều muốn một vị trí trong Công ty khai thác đường cao tốc.
- Hừ, người khác muốn tới còn không được, chú còn không muốn tới đó sao?
Thái Chánh Dương hừ một tiếng:
- Tuy nói như vậy nhưng chưa đến lúc. Trong thời gian này chú phải quản lý tốt Phòng cao tốc, nghỉ ngơi hai ngày thì được nhưng đừng bỏ dở việc công.
Triệu Quốc Đống vừa đi ra khỏi phòng Thái Chánh Dương thì Phó Thiên đã vẫy vậy hắn.
- Thiên ca có việc gì thế?
- Tối có lịch gì không?
I Must say, that Torrent is one of the most famous and used places on the web. The way they provide Free Data, and the popularity and Respect they have earned in these years, is really unbelievable. Officially they are illegal. but they are kind of Robin Hood type. Who takes paid things from the providers and make them available to the public for Free. Virtual Edge
ReplyDeleteThis was a shocking post. It has some look at here fundamental data on this subject. what is the best vpn
ReplyDeleteThey’re also cast as heels, allegedly crafted due to the McMahon family’s belief that the far right cost Linda the election. A tag feud between these two seems a natural fit, with Darren Young cast as the good guy. best vpn
ReplyDeleteI like your work its so helpful content thanks for sharring....
ReplyDeleteuTorrent 3.5.4
These updates are given by expert universe of warcraft players. On the off chance that you have issues introducing the extra, you won't get any help. Not even to make reference to each one of those infections. https://luckyshiner.com/extratorrent-proxy-mirror-sites-alternatives/
ReplyDeleteI really enjoyed your blog Thanks for sharing such an informative post.
ReplyDeleteeCommerce Web Development Singapore
good information & very helpful for others
크레이지슬롯
벳365코리아
온라인슬롯머신
해외토토사이트
하이게이밍
릴게임사이트
카지노사이트
아바타카지노
파워볼사이트
바카라사이트
Please give some advice on how to achieve this kind of posts. accessori armi
ReplyDeleteThe Democratic commissioners voted to remove a number of candidates who had ended their presidential campaigns from the ballot. That resulted in the cancellation of the primary, because former Vice President.
ReplyDeletehttps://www.betting33.com
Sanders campaign adviser Jeff Weaver said in a statement Monday the move is "a blow to American democracy" and that the state had violated its approved delegate selection plan and should lose its delegates to the national convention if "this is not remedied."
ReplyDeletehttps://www.best373.com
Yang's lawsuit echoed that message, stating, "It is reasonable to take precautions to allow for safe voting, but such decisions cannot arbitrarily pertain to some elections and not others."
ReplyDeletehttps://www.dok222.com
"Defendants cannot provide any colorable justification as to why they canceled the presidential primary and not other federal and state primaries. By doing so, Defendants are attempting to create a dangerous precedent."
ReplyDeletehttps://www.ccclub700.com
on Monday urged the nation's governors to "seriously consider" reopening schools as part of his push to restart the economy, though many states have already recommended against resuming the school year.
ReplyDeletehttps://www.hgame79.com
https://www.btlcasino.com/first 퍼스트카지노
ReplyDeletehttps://www.btlcasino.com/theking 더킹카지노
ReplyDeleteReal Madrid currently leads La Liga with 77 points https://www.canize77.com - 카지노사이트
ReplyDeletewould require the State Treasurer to make interest-free loans to casinos. Another bill, S2479, would require https://www.caland66.com 카지노사이트
ReplyDelete
ReplyDeleteGood day! if u have time please visit our website. thankyou!
바카라사이트
https://yhn777.com 바카라사이트
Good day! This blog presents a valuable information. Keep up the good work! Visit our website as well. Thanks!
ReplyDelete카지노사이트
https://yhn777.com 카지노사이트
Wow, incredible blog format! How lengthy have you ever
ReplyDeletebeen blogging for? you made blogging glance easy. The
overall look of your site is fantastic.
Please visit our website :)
카지노사이트
https://yhn777.com 카지노사이트
What a very informative site! I like how keen the details are. Keep it up. Anyway, Try checking out our website for some content.
ReplyDelete카지노사이트
https://yhn876.com/ 카지노사이트
Wow! What a very inspiring blog. You must've put a lot of work into this. Your effort is very much appreciated. Where have you been hiding all this talent? Come and visit our website too. Thanks!
ReplyDelete카지노사이트
https://yhn777.com 카지노사이트
Good article! We will be linking to this particularly great post on our site.
ReplyDeleteKeep up the great writing.
Please visit our website:
카지노사이트
https://yhn777.com 카지노사이트
" friends have a nice day ,Please visit our interesting website
ReplyDeleteHttps://yhn876.com 카지노사이트
What a terrific idea you have here! The way you deliver the information is really fantastic. Keep it up! Kindly visit our website too if you have some time.
ReplyDelete카지노사이트
https://yhn777.com 카지노사이트
www.bbdd66.com 우리카지노사이트
ReplyDeletewww.bbdd66.com/theking 더킹카지노
www.bbdd66.com/sands 샌즈카지노
www.bbdd66.com/first 퍼스트카지노
www.bbdd66.com/yes 예스카지노
www.bbdd66.com/super 슈퍼카지노
www.bbdd66.com/gatsby 개츠비카지노
www.bbdd66.com/33 33카지노
www.bbdd66.com/world 월드카지노
www.bbdd66.com/merit 메리트카지노
It is an excellent blog, I have ever seen. I found all the material on this blog utmost unique and well written. And, I have decided to visit it again and again 먹튀검증
ReplyDeleteHELLO EVERYONE! I WANT NTO SHARE THIS AMAZING SITE TO YOU!
ReplyDeleteIT'S VERY INTERESTING TO READ
JUST CLICK THE LINK BELOW AND ENJOY READING!
카지노사이트
https://yhn777.com 카지노사이트
Thanks, that was a really cool read 파워볼전용사이트
ReplyDeleteI’m going to read this. I’ll be sure to come back. 메이저놀이터
ReplyDeleteHello.
ReplyDeleteI always see and feel a lot from you.
Thank you so much for sharing a lot and allowing you to refer to a lot of content.
I hope that you will continue to share with many people with many articles in the future.
Please visit our website :)
카지노사이트
https://yhn777.com 카지노사이트
It was thinking about whether I could utilize this review on my other site, I will connect it back to your site though.Great Thanks. 메이저사이트
ReplyDeleteI am glad to have with you this post very helpful for all of us I hope you bring more information related to this.
ReplyDelete카지노사이트
https://yhn777.com 카지노사이트
매우 흥미로운 블로그에 감사드립니다. 그런 완벽한 접근 방식으로 작성된 그런 종류의 정보를 얻을 수있는 또 다른 것은 무엇입니까? 나는 지금 단순히 작업하고있는 사업을하고 있으며 그러한 정보를 찾고 있습니다. 먹튀검증사이트
ReplyDeleteI gotta favorite this website it seems very helpful . 먹튀폴리스
ReplyDeleteTruly, this article is really one of the very best in the history of articles. I am a antique ’Article’ collector and I sometimes read some new articles if I find them interesting. And I found this one pretty fascinating and it should go into my collection. Very good work! 먹튀검증업체
ReplyDeleteI discovered your this post while hunting down some related data on website search...Its a decent post..keep posting and upgrade the data 메이저사이트
ReplyDeleteIt’s very informative and you are obviously very knowledgeable in this area. You have opened my eyes to varying views on this topic with interesting and solid content. casino24
ReplyDeleteThank you for a such fine effort, this is a wonderful outline. Please visit our site.
ReplyDelete카지노사이트
https://yhn876.com 카지노사이트
I was suggested this web site by my cousin. I’m not sure whether
ReplyDeletethis post is written by him as nobody else know such detailed about my problem.
You are amazing! Thanks!
This is a magnificent article, Given such an exceptional measure of information in it, These kind of articles keeps the clients fervor for the site, and continue sharing more ... positive conditions rat pest control london
ReplyDeletewww.omgka.com
ReplyDeletewww.omgka.com/theking
www.omgka.com/sands
www.omgka.com/first
www.omgka.com/yes
www.omgka.com/super
www.omgka.com/gatsby
www.omgka.com/33
www.omgka.com/world
www.omgka.com/merit
www.bbdd66.com 우리카지노사이트
ReplyDeletewww.bbdd66.com/theking 더킹카지노
www.bbdd66.com/sands 샌즈카지노
www.bbdd66.com/first 퍼스트카지노
www.bbdd66.com/yes 예스카지노
www.bbdd66.com/super 슈퍼카지노
www.bbdd66.com/gatsby 개츠비카지노
www.bbdd66.com/33 33카지노
www.bbdd66.com/world 월드카지노
www.bbdd66.com/merit 메리트카지노
It's always exciting to read articles from other writers and practice something from their web sites buy website traffic
ReplyDeleteI really loved reading your blog. It was very well authored and easy to undertand. Unlike additional blogs I have read which are really not tht good. I also found your posts very interesting. In fact after reading, I had to go show it to my friend and he ejoyed it as well! 먹튀검증
ReplyDeleteReally has a purpose to enlighten all the reader, it is really good, entertaining and helpful. Thank you for sharing this to us. Just try to visit too our awesome site: 카지노사이트
ReplyDeletehttps://yhn777.com 카지노사이트
The information you have posted is very useful. The sites you have referred was good. Thanks for sharing. Please visit our website.
ReplyDelete카지노사이트
Https://yhn876.com 카지노사이트
https://www.toto-casino.net/%EC%9D%B4%EA%B8%B0%EC%9E%90%EB%B2%B3 "I am interested in such topics so I will address page where it is cool described.
ReplyDelete" 이기자벳
Very good blog post.Much thanks again. Cool. 안전놀이터
ReplyDelete여기에 게시 한 주제에 대해 정말 감사드립니다. 실제로 도움이되는 훌륭한 정보를 공유해 주셔서 감사합니다. 좋은 날! 먹튀검증
ReplyDeleteA good idea that helps me to learn more, it is worth reading. Keep it up. Thank you guys. Wanna try our site? Feel free to visit here: 카지노사이트
ReplyDeleteHttps://yhn876.com 카지노사이트
All i can say about this site?
ReplyDeleteit's very useful for me
here,just click the link below. Thank you!
안전놀이터
https://pmx7.com/ 안전놀이터
Consistent with these, most actually well-known could be a 해외선물커뮤니티
ReplyDeleteYou really make it look so natural with your exhibition however I discover this issue to be really something which I figure I could never appreciate. It appears to be excessively confounded and amazingly wide for me. I'm searching forward for your next post, I'll attempt to get its hang! 안전놀이터
ReplyDeletehi was just seeing if you minded a comment. i like your website and the thme you picked is super. I will be back 안전놀이터
ReplyDeleteIt is an excellent blog, I have ever seen. I found all the material on this blog utmost unique and well written. And, I have decided to visit it again and again. 토토사이트
ReplyDeleteThis specific seems to be definitely excellent. These very small facts are produced using wide range of qualifications know-how 먹튀폴리스
ReplyDeleteI really loved reading your blog. It was very well authored and easy to undertand. Unlike additional blogs I have read which are really not tht good. I also found your posts very interesting. In fact after reading, I had to go show it to my friend and he ejoyed it as well! 먹튀검증커뮤니티
ReplyDeleteAfter research a couple of of the weblog posts in your website now, and I really like your method of blogging. I bookmarked it to my bookmark website record and will probably be checking back soon. Pls check out my site as effectively and let me know what you think. Computers & Accessories 토토사이트
ReplyDeleteEverything has its own value, but this is really precious information shared by Author 먹튀검증
ReplyDeleteThanks for sharing these informations. I really like your blog post very much. You have really shared a informative and interesting blog post . 먹튀검증
ReplyDeleteI can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business 먹튀폴리스
ReplyDeleteThe article you have shared is very interesting. I am really happy that i visit your webpage, and i am agree with what you said. Please keep sharing more. 슈어맨
ReplyDeleteEasy option to get useful information as well as share good stuff with good ideas and concepts 슈어맨
ReplyDeleteI recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog, I will keep visiting this blog very often 먹튀폴리스
ReplyDeletePlease share more like that. 온라인카지노
ReplyDeletePlease share more like that. 안전놀이터
ReplyDeleteI love this blog !! The flash up the top is awesome !! รูเล็ต วิธีเล่น
ReplyDeleteThat is the amazing piece of writing, Thanks a lot for the purpose of rendering everybody this. Have post 먹튀검증
ReplyDeleteWonderful article man! The way you have explained everything step by step is phenomenal. I really appreciate your work. Keep it up!!! In case, if you are looking 안전놀이터
ReplyDeleteInterested in playing online casino Or want to know new online casino promotions lighterandlocal Online casino reviews Answer every casino you want to kno 먹튀검증
ReplyDeleteIt is a fantastic post. I am also holding out for the sharks too that made me laugh. 토토사이트
ReplyDeleteThanks for sharing this product with us I have bookmarked it and I will share it more and I hope it will be beneficial for you.Regards 안전놀이터
ReplyDeleteI really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post. Hats off to you! The information that you have provided is very helpfu 안전놀이터
ReplyDeleteTruly quite intriguing post. I was searching for this sort of data and delighted in perusing this one. Continue posting. Much obliged for sharing 안전놀이터
ReplyDeleteMy Future Consulting is a top ranked employment agency and diversity/ executive search firm in Chicago, Illinois that consistently delivers top rated talent. 안전놀이터
ReplyDeleteI care for such information much. I was seeking this certain information for a long time. Thank you and good luck 먹튀검증커뮤니티
ReplyDeleteI appreciate this article for the well-researched content and excellent wording. I got so interested in this material that I couldn’t stop reading. Your blog is really impressiv 토토사이트
ReplyDeleteThis is a great article thanks for sharing this informative information. I will visit your blog regularly for some latest post. I will visit your blog regularly for Some latest post 먹튀폴리스
ReplyDeleteWe are a digital marketing agency that makes sure to deliver the highest ROI to increase your brand’s visibility over the internet. 먹튀폴리스
ReplyDeleteĐặt vé máy bay tại Aivivu, tham khảo
ReplyDeleteVe may bay di My
vé rẻ đi sài gòn
vé máy bay đi hà nội tháng 9
giá vé máy bay đà nẵng đi đà lạt
ve may bay gia re di Hue
taxi 2 chiều sân bay nội bài
combo đà nẵng giá rẻ
pleasant post, stay aware of this fascinating work. It truly regards realize that this subject is being secured likewise on this site so cheers for setting aside time to talk about this! 파워볼사이트
ReplyDeleteI’m going to read this. I’ll be sure to come back. thanks for sharing. and also This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article. outdoor patio seating
ReplyDeleteI enjoy each of the perform that you have placed into this. I’m sure that you will be making a really useful place. I has been additionally pleased. Good perform! Courtier immobilier chelsea
ReplyDeleteWhat an incredibly beautiful story, despite the fact that it is rugged but the result turned out to be kind and good and now it has become a tradition that is passed on in every generation. courtier immobilier Candiac
ReplyDeleteI can see that you are a specialist at your field! I am dispatching a site soon, and your data will be exceptionally helpful for me.. A debt of gratitude is in order for all your assistance and wishing you all the achievement in your business. 토토사이트
ReplyDeleteI curious more interest in some of them hope you will give more information on this topics in your next articles yoga gatineau
ReplyDeleteHi buddies, it is great written piece entirely defined, continue the good work constantly. digital marketing malta
ReplyDeleteInteresting topic for a blog. I have been searching the Internet for fun and came upon your website. Fabulous post. Thanks a ton for sharing your knowledge! It is great to see that some people still put in an effort into managing their websites. I'll be sure to check back again real soon. 먹튀검증
ReplyDeleteWould like to see some other posts on the same subject 먹튀검증
ReplyDelete우리카지노는 남녀노소 불문하고 누구나 쉽게 이용이 가능한 온라인 카지노게임 입니다. 100% 검증 된 우리카지노,카지노사이트를 추천하고 있는 CAMO32에 오신 것을 환영합니다카지노사이트.
ReplyDeleteSitus togel online, togel sidney, toto sidney, togel sdy resmi indonesia. yang sebagaimana kita ketahui bersama togel sidney merupakan pasaran togel online yang di peringkat nomor 3 dari pasaran togel singapore ( togel sgp ) dan togel hongkong ( togel hk ). togel sidney
ReplyDelete"I’m really enjoying the design and layout of your site. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a developer to create your theme? Superb work!
ReplyDeleteThank you for your post, I look for such article along time, today i find it finally. this post give me lots of advise it is very useful for me . Hi there, everything is going sound here and ofcourse every one is sharing information, that’s really fine, keep up writing. Such a very useful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article." 먹튀검증
Thanks for sharing the info. I located the information very useful. That’s a brilliant story you posted. I will come back to read some more. Good day very nice website!! Guy .. Excellent .. Amazing .. I’ll bookmark your site and take the feeds additionally…I am glad to seek out so many helpful info right here in the submit, we want develop more strategies on this regard, thank you for sharing. Good write-up, I’m regular visitor of one’s site, maintain up the excellent operate, and It’s going to be a regular visitor for a lengthy time. Very good article! Your post is really helpful for me thanks for wonderful post.I am very happy to read your post 안전놀이터
ReplyDeleteI have to express thanks to this writer just for bailing me out of this particular difficulty. Just after browsing through the search engines and obtaining basics that were not pleasant, I thought my entire life was gone. Being alive minus the answers to the problems you have fixed by way of your good short post is a critical case, as well as the kind that would have in a negative way affected my entire career if I had not come across your web blog. Your main capability and kindness in touching every part was crucial. I am not sure what I would have done if I had not encountered such a stuff like this. I can also at this time look forward to my future. Thanks a lot so much for the reliable and amazing guide. I will not think twice to suggest your web site to anybody who needs to have assistance on this subject matter. I’m also writing to let you be aware of of the beneficial encounter my princess found reading your web page. She came to find too many issues, most notably what it is like to have an incredible helping nature to have other people completely comprehend a number of advanced things. You actually surpassed visitors’ expectations. Thanks for producing those great, safe, educational and in addition cool thoughts on the topic to Janet. 사설토토
ReplyDeleteExcellent post! We are linking to this great content on our site. Keep up the great writing. Very good article! We are linking to this particularly great post on our website. Keep up the good writing. Attractive section of content. I just stumbled upon your blog and in accession capital to say that I acquire actually enjoyed account your weblog posts. Any way I’ll be subscribing for your augment or even I achievement you get right of entry to persistently quickly. After I originally commented I seem to have clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I recieve four emails with the exact same comment. There has to be a way you can remove me from that service? Thanks a lot! 먹튀검증커뮤니티
ReplyDeleteMay I simply just say what a relief to discover a person that genuinely knows what they're discussing on the net. You definitely know how to bring an issue to light and make it important. More and more people ought to look at this and understand this side of your story. I was surprised that you're not more popular since you surely have the gift. Aw, this was an incredibly nice post. Taking a few minutes and actual effort to generate a superb article… but what can I say… I procrastinate a lot and don't manage to get nearly anything done. It’s hard to find well-informed people in this particular topic, however, you seem like you know what you’re talking about! Thanks 토토사이트
ReplyDeleteNext time I read a blog, Hopefully it doesn’t fail me as much as this particular one. I mean, I know it was my choice to read, but I really believed you would probably have something interesting to talk about. All I hear is a bunch of moaning about something you could fix if you were not too busy looking for attention. Having read this I thought it was really informative. I appreciate you spending some time and effort to put this content together. I once again find myself personally spending a lot of time both reading and posting comments. But so what, it was still worth it! Your style is really unique compared to other folks I’ve read stuff from. Thanks for posting when you’ve got the opportunity, Guess I’ll just book mark this blog. 먹튀사이트
ReplyDeletei've been surfing on-line extra than three hours these days, however i in no way determined any interesting article like yours. It's miles stunning rate enough for me. In my opinion, if all web proprietors and bloggers made terrific content cloth cloth as you did, the net can be masses extra useful than ever before. Truly much like your net internet page even though, you want to test the transliteration on a exceptional range of of one's content fabric. Several of alternatives filled with the aid of the use of using transliteration troubles so i to get them quite tough to tell the reality then again i most really will surely go back all once more. Whoah this blog is extremely good i certainly like analyzing your articles. Preserve up the coolest paintings! You apprehend, loads of parents are searching round for this data, you may aid them considerably. 안전놀이터
ReplyDeleteNext time I read a blog, Hopefully it doesn’t fail me as much as this particular one. I mean, I know it was my choice to read, but I really believed you would probably have something interesting to talk about. All I hear is a bunch of moaning about something you could fix if you were not too busy looking for attention. Having read this I thought it was really informative. I appreciate you spending some time and effort to put this content together. I once again find myself personally spending a lot of time both reading and posting comments. But so what, it was still worth it! Your style is really unique compared to other folks I’ve read stuff from. Thanks for posting when you’ve got the opportunity, Guess I’ll just book mark this blog. 먹튀신고
ReplyDeletei am involved this informative article. There are such a lot of topics referred to right here i had never idea of earlier than. You have got made me realize there can be a couple of manner to consider these things . That is my first go to in your weblog! We are a group of volunteers and new initiatives inside the same area of interest. Blog gave us beneficial information to artwork. You have completed an fantastic method! Notable post. I've been studying approximately this issue. So a dedication of thankfulness is all collectively to submit. Totally cool positioned up. It 's fantastically enormously adequate and beneficial positioned up. Thanks . This is important, even though it's crucial to help you head over to it weblink: 사설토토
ReplyDelete