SocksBin logo

SocksBin

  •  0 ratings
In category: Pastebins

About SocksBin

Simple and fast terminal based pastebin, with optional code highlighting. No specific client required, all you need is netcat.

  •   291  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: N/A  
  •   N/A  
  •   N/A  
  •  Latest commit: N/A  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about SocksBin

SocksBin

Command line pastebin for sharing files and command outputs.

How to use

Requirements

To use this, you'll need a tool called netcat. Try typing 'nc' or 'netcat' into the terminal, you probably have it already !


Client Side

  • Self-Explanatory examples using the public server
echo "Hello World !" | nc magnum.wtf 6969
cat "script.sh" | nc magnum.wtf 6969
  • In case you started the server on localhost
df | nc localhost 9999

You will receive a url to the text-only paste as a response to the above commands. e.g.

https://socksbin.magnum.wtf/33fdd867

This has a built-in Pygment-based beautifier. add "_color" to the end of the received url, to get a beautified paste.

https://socksbin.magnum.wtf/33fdd867_color

In case your text isn't beautified, include the shebang #! which is the first two bytes of an executable

e.g. the first line should be /usr/bin/env python for proper python formatting


Cool stuff

Make this much easier to use by adding an alias to your rc file. For example:


skb alias

Linux (Bash):

echo 'alias skb="nc magnum.wtf 6969"' >> .bashrc

macOS:

echo 'alias skb="nc magnum.wtf 9999"' >> .bash_profile

Copy output to clipboard

Linux (Bash):

echo 'alias skb="netcat magnum.wtf 6969 | xclip -selection c"' >> .bashrc

echo less typing now! | skb

macOS:

echo 'alias skb="nc magnum.wtf 6969 | pbcopy"' >> .bash_profile
echo less typing now! | skb

Remember to reload the shell with source ~/.bashrc or source ~/.bash_profile after adding any of provided above!


Server Side

Configration

  • Clone
git clone https://github.com/MagnumDingusEdu/SocksBin.git
  • Set up virtual environment
python3 -m venv venv

# or 

virtualenv venv
  • Install required packages
source venv/bin/activate
pip install -r requirements.txt
  • Make the script executable
chmod +x paster.py

Usage

usage: ./paster.py [-o output directory]
                   [-n listen_address] [-p port] [-s slug size]
                   [-l logfile] [-b buffer size][-h help]

These are command line arguments. None of these are required to run the server. Defaults are specified in the section below.


Settings


Output directory -o --output_directory

Absolute, or relative path to the directory where the pastes will be stored, as plaintext files.

./paster.py -o ./pastes
./paster.py -o /home/www/pastes/

Default value: $HOME/socksbin


URL -u --url

This will be used as a prefix for an url received by the client. Value will be prepended with $url.

./paster.py -u https://domain.com/
./paster.py -u https://subdomain.domain.com/
./paster.py -u https://subdomain.domain.com/pastes/

Default value: http://localhost/


Slug size -s --slug_size

This will force slugs to be of required length:

./paster.py -s 6

Output url with default value: http://localhost/********, where * is a randomized character

Output url with example value 6: http://localhost/******, where * is a randomized character

Default value: 8


Buffer size -b --buffer_size

This parameter defines size of the buffer in bytes, when making a connection. TCP has a max buffer size of 60K.

./paster.py -b 4096

Default value: 32768


Log file -l --log_file

./paster.py -l /home/user/socksbin.log.txt

The log file will only be made if you specify this argument. Make sure that this file is user writable.

Default value: not set


Queue Depth -q --queue_depth

./paster.py -q 10

The helps to properly manage simultaneous connections. The maximum value is system dependent. For example, on Linux, see /proc/sys/net/core/somaxconn

Default value: 10


Running as a service

If you're using systemd, follow these steps:

  • Create the service file
sudo touch /lib/systemd/system/socksbin.service
  • Add the following code to the file
[Unit]
Description=Socksbin Server
After=multi-user.target

[Service]
Type=idle
ExecStart=/home/user/socksbin/venv/bin/python /home/user/socksbin/paster.py -o /var/www/socksbin -s 8 -p 6969 -l /home/user/socklog.txt -u https://subdomain.yourdomain.com/

[Install]
WantedBy=multi-user.target

Replace /home/user/socksbin with the path to your socksbin installation. Save and exit.

  • Set appropriate permissions
sudo chmod 644 /lib/systemd/system/socksbin.service
  • Restart the systemd daemon, and enable your service
sudo systemctl daemon-reload
sudo systemctl start socksbin
sudo systemctl enable socksbin

This will make sure it remains up even accross reboots.

To check the current status of your service:

sudo systemctl status socksbin

Example Server Configs

This does not have a web server built in, so you can use this with your existing web server, to make files available to the internet.

  • Example apache config
<VirtualHost *:80>
        ServerName subdomain.mysite.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/socksbin
        DirectoryIndex index.html

        ErrorLog ${APACHE_LOG_DIR}/socksbin_error.log
        CustomLog ${APACHE_LOG_DIR}/socksbin_access.log combined

</VirtualHost>
  • Example nginx config
server {
    listen 80;
    server_name subdomain.mysite.com;
    charset utf-8;

    location / {
            root /var/www/socksbin/;
            index index.txt index.html;
    }
}

Please make sure that you put default file, e.g. index.html, so that people can't access all your files freely.


Comments (0)

Please login to join the discussion on this project.

SocksBin Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Dashboard

in Personal Dashboards
 5k    0    0    0  

Audiobookshelf

in Audio Streaming
 5k    0    1    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

SharpPaste logo
SharpPaste cover

SharpPaste

Cross-platform C# pastebin with client-side AES-256 encrypt…

0bin logo
0bin cover

0bin

Client side encrypted pastebin.

Snippet Box logo
Snippet Box cover

Snippet Box

Snippet Box is a simple self-hosted app for organizing your…