mainly linux, some windows…

ssh tunneling samba on windows 7

leave a comment »

Followed these instructions;

Create localhost adapter.

We’ll give your computer an additional (fake) IP address, and we’ll port forward to that address instead of the computer’s real IP. Windows XP will continue to do file sharing on the real IP address. We’ll assign it an IP of (that’s what we configured putty to use above.)

  1. System->Control Panel->Add Hardware
  2. Yes, Hardware is already connected
  3. Add a new hardware device (at bottom of list)
  4. Install the hardware that I manually select
  5. Network adapters
  6. Microsoft , Microsoft Loopback Adapter
  7. (Go through the installation procedure.)

Configure the new localhost adapter.

  1. Open up your existing (real) ethernet adapter and write down your gateway and DNS server addresses.
  2. Open your new fake ethernet adapter (Network Connections) , enter a made-up IP address (I suggest, which is a privately routable address that most folk don’t use.)
  3. Enable Client for Microsoft Networks.
  4. Disable File and Printer Sharing for Microsoft Networks
  5. Enable Interent Protocol (TCP/IP)
  6. Click on properties for TCP/IP.
  7. Enter your chosen IP address (, subnet mask (
  8. Under advanced->WINS, Enable LMHosts Lookup and Disable NetBIOS over TCP/IP
  9. Enter 9999 for the interface metric. (Necessary?)
  10. REBOOT (important!)

Configure Putty connection

  1. Fire up Putty on C (Client) , create a new connection to S (Server). Make sure you can ssh from C to S before going any further.
  2. Configure a new SSH tunnel for the connection you created in the previous step:
    1. Source port= (the IP:port notation is wider than the text box, but it will work!)
    2. Destination= (this tells the server to connect the other end of the tunnel to the server’s port 139.) Previous versions of these instructions suggested S’s actual IP address, which might not work if S doesn’t know its own true IP address (due to NATing, for example.) The destination options should be left at “local” and “auto”.
    3. (VISTA/7 work-around) Add an additional tunnel from source= to destination= (see Olaf Zehner, below)
    4. Click the checkbox, if present, reading “Local ports accept connections from other hosts”.
  3. Click add, save the connection

Now we test out our connection:

  1. Start->run
  2. type: “\\”.


– Add hosts file entry for (e.g. “      samba”)

(taken from

To get this working on Windows 7 you need to do the following;

Another solution for Windows 7 (that doesn’t involve running a .exe from a 3rd-party site) is to disable the “Server” service.  Specifically: Computer -> Manage -> Services and Applications -> Services.  Within that, there’s a service named “Server” with the description “Supports file, print, and named-pipe sharing over the network for this computer. …”

Just stopping the service wasn’t sufficient, but when I set it to startup: Disabled and rebooted, Windows 7 was finally not listening on port 445.  I was then able to forward port 445 over ssh and successfully connect to a samba drive.

This does mean you can’t share files/etc. from the machine, but if you’re using a loopback adapter to handle the SMB (139/445) forwarding, you can enable and start the “Server” service once your ssh tunnel is started.  I’m running like that right now, and I’m both connected to samba over ssh and able to act as a server for file sharing.

(taken from


Written by Steve

July 23, 2010 at 7:06 AM

Posted in computers, linux

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: