Ever had the desire to see if someone was on your computer? Wished you could get on there and just see through your webcam? Me neither, but one day I got curious and wanted to see if/how it could be done. It's kind of a beast of a command, but I just put it in a script which makes it very easy to use.
What you need:
ffmpeg
vlc (or mplayer)
Here's the script.( I actually got it from here. Then just changed it to use vlc because it seems to work better for me.
#! /bin/bash
B="100K"
F="ogg"
ssh <remote_host> ffmpeg -b $B -an -f video4linux2 \
-s 320x240 -r 10 -i /dev/video0 -b $B -f $F - \
| vlc -
I would break it down for you but I haven't gotten familiar enough with the ffmpeg command. So all I really do is copy and paste, and I only have a general idea of what it is doing. It worked when I copied it so I didn't need to figure it out to change it. If it isn't working, the first thing I would check is the device name in case it's not /dev/video0
vlc -
just tells vlc to read from stdin.(the pipe)
In my script I substituted <remote_host> for $1 so from the command line I can just run
$./script_name <remote_host>
since I wanted to be able to use it on different computers/webcams instead of just one (if I get more than one webcam on one computer then I may also have /dev/video0 passed as a parameter.
You can change the size with the -s flag I changed mine from 320x240 to 640x480 and it streamed fine.
It may take a few seconds for the picture to actually come through and be received, (I know it does for me) so once you run it then give it a little minute to get that data through to vlc.
So there it is. Just for fun.
This started as a place to write useful tricks with linux, mainly on the command line. Now lets just say it's another random tech blog.
Showing posts with label commandline. Show all posts
Showing posts with label commandline. Show all posts
Wednesday, December 4, 2013
Wednesday, November 27, 2013
Useful networking commands
I started to begin a post about useful linux commands and command line tricks. It didn't take long for me to realize that would make a very very long post.
I'm going to start with some more common commands and some I've looked at recently. I expect this list to grow. For most of this I will list the command, my most common use(s) for it, and maybe some examples.
netstat
Useful for seeing what ports are open on your computer and what process is manning those ports. I might use this to make sure something like and ssh-server is running. Very useful on servers - dns,mail,web - for making sure your programs are configures to use the right ports.
netstat -natp
sudo netstat -natp|grep 'sshd'
ssh
If you don't know what this is for or how to use it, I don't see how anything else in this post will help you much.
traceroute
Traces the route a packet takes to get to a destination. I haven't found a really great regular/common use for it, but it is fun to run every once to a while to see where things are going, and what route they are taking.
traceroute www.google.com
mtr
It does the same as traceroute but it consistently pings each hop, and keeps track of packets - dropped, etc - can be useful for seeing where a connection may be getting hung up.
mtr www.google.com
xtightvncviewer
I use this all the time on my personal computers. I have one laptop that the battery doesn't work in, so it's always connected to the tv. It's nice to be able to connect to it from any other computer to change stuff. Or if I am trying to follow something my wife is doing on the computer and guide her through it I can connect in view only mode to always have a visual.
vncviewer remote.ip.addr[:port]
vncviewer -viewonly remote.ip.addr[:port]
whois
This can be useful, but like traceroute is mostly a curiosity thing. It will tell you who a particular ip address is registered to in the whois database.
whois ip.addr
nmap
This is a powerful great program that has many many uses. My most command is seeing things like what other computers are on the network and what services they are running. It scans the network and displays information.
nmap -v -sT -rF 192.168.0.0/24
The above command runs an nmap scan in verbose mode (-v -sT), scans the ip addresses between 192.168.0.0-255 (192.168.0.0/24), Scans in fast mode the most common ports (-F) and scans ports consecutively - not randomly (-r).
I use this with grep to show only the info on open ports.
If all I want to see is the open ssh ports on my network I can use -p22 instead of -rF
sshuttle
This is one great program. I had never heard of it until recently, but it's pretty much the bomb. It can do more but the first thing I've used it fore was to set connect to another computer (via ssh) and route all network traffic through the tunnel. (pretty much sets up a VPN for you via ssh). You can use it to get around dns blocks. Or if someone wants to join your LAN game who is not on your LAN sshuttle will put you on their network.
sshuttle -r <server> --dns 0/0
I did run into a little bit of trouble on ubuntu 12.04 my first time trying it and I actually had to run these comands on the client and server (both ubuntu 12.04)
sudo dpkg-reconfigure resolvconf (select yes on any prompts)
sudo resolvconf --enable-updates
sudo reboot
sshfs
mount an ssh filesystem, I already have this one in another post but here it is for redundancy. You can mount a folder from one computer to an empty folder on your computer. syntax is similar to scp
sshfs <server>:/path/to/source /path/to/destination
Well that's it for now, I'm sure the list will grow.
I'm going to start with some more common commands and some I've looked at recently. I expect this list to grow. For most of this I will list the command, my most common use(s) for it, and maybe some examples.
netstat
Useful for seeing what ports are open on your computer and what process is manning those ports. I might use this to make sure something like and ssh-server is running. Very useful on servers - dns,mail,web - for making sure your programs are configures to use the right ports.
netstat -natp
sudo netstat -natp|grep 'sshd'
ssh
If you don't know what this is for or how to use it, I don't see how anything else in this post will help you much.
traceroute
Traces the route a packet takes to get to a destination. I haven't found a really great regular/common use for it, but it is fun to run every once to a while to see where things are going, and what route they are taking.
traceroute www.google.com
mtr
It does the same as traceroute but it consistently pings each hop, and keeps track of packets - dropped, etc - can be useful for seeing where a connection may be getting hung up.
mtr www.google.com
xtightvncviewer
I use this all the time on my personal computers. I have one laptop that the battery doesn't work in, so it's always connected to the tv. It's nice to be able to connect to it from any other computer to change stuff. Or if I am trying to follow something my wife is doing on the computer and guide her through it I can connect in view only mode to always have a visual.
vncviewer remote.ip.addr[:port]
vncviewer -viewonly remote.ip.addr[:port]
whois
This can be useful, but like traceroute is mostly a curiosity thing. It will tell you who a particular ip address is registered to in the whois database.
whois ip.addr
nmap
This is a powerful great program that has many many uses. My most command is seeing things like what other computers are on the network and what services they are running. It scans the network and displays information.
nmap -v -sT -rF 192.168.0.0/24
The above command runs an nmap scan in verbose mode (-v -sT), scans the ip addresses between 192.168.0.0-255 (192.168.0.0/24), Scans in fast mode the most common ports (-F) and scans ports consecutively - not randomly (-r).
I use this with grep to show only the info on open ports.
If all I want to see is the open ssh ports on my network I can use -p22 instead of -rF
sshuttle
This is one great program. I had never heard of it until recently, but it's pretty much the bomb. It can do more but the first thing I've used it fore was to set connect to another computer (via ssh) and route all network traffic through the tunnel. (pretty much sets up a VPN for you via ssh). You can use it to get around dns blocks. Or if someone wants to join your LAN game who is not on your LAN sshuttle will put you on their network.
sshuttle -r <server> --dns 0/0
I did run into a little bit of trouble on ubuntu 12.04 my first time trying it and I actually had to run these comands on the client and server (both ubuntu 12.04)
sudo dpkg-reconfigure resolvconf (select yes on any prompts)
sudo resolvconf --enable-updates
sudo reboot
sshfs
mount an ssh filesystem, I already have this one in another post but here it is for redundancy. You can mount a folder from one computer to an empty folder on your computer. syntax is similar to scp
sshfs <server>:/path/to/source /path/to/destination
Well that's it for now, I'm sure the list will grow.
Monday, September 2, 2013
Send a message to another computer via ssh
I don't know if everyone else has the same problem as me, but I have two computers in different rooms, and sometimes my wife and I are on each computer. Sometimes I want to tell my wife something or send her a message, but I'm just too lazy to get up and go into the other room to talk to her. One thing I do have is ssh access to all of my computers. After searching a little (there's references to this just about everywhere), I found how to send a message to my wife via ssh.
ssh
export DISPLAY=:0
notify-send "Message"
Now I had a computer before that for some reason or another, the default monitor/display wasn't 0 and it took some searching to find out which was the right one. Although the easiest way would probably be to increment the display number until you find the right one.
notify-send will send a notification to the screen which will time out and can easily be missed if the person on the other computer is not watching. You can also put a message in a text file, then open it up with something like gvim textfile.txt which will open a new window with the text file (gvim can also be replaced with the more common gedit)
Once you export the display in fact, you can open up any graphical program, and it will open up on that computer.
If you open up a program and then want to close after, you can run
killall <program_name>
to close it.
ssh
export DISPLAY=:0
notify-send "Message"
Now I had a computer before that for some reason or another, the default monitor/display wasn't 0 and it took some searching to find out which was the right one. Although the easiest way would probably be to increment the display number until you find the right one.
notify-send will send a notification to the screen which will time out and can easily be missed if the person on the other computer is not watching. You can also put a message in a text file, then open it up with something like gvim textfile.txt which will open a new window with the text file (gvim can also be replaced with the more common gedit)
Once you export the display in fact, you can open up any graphical program, and it will open up on that computer.
If you open up a program and then want to close after, you can run
killall <program_name>
to close it.
Subscribe to:
Posts (Atom)