Skip to content

Instantly share code, notes, and snippets.

@fnando
Created July 23, 2011 09:00
Show Gist options
  • Save fnando/1101211 to your computer and use it in GitHub Desktop.
Save fnando/1101211 to your computer and use it in GitHub Desktop.
Nginx configuration for SSH tunnel
upstream tunnel {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name dev.codeplane.com br.dev.codeplane.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://tunnel;
}
}
ssh -vnNT -R 3000:localhost:3000 deploy@codeplane.com
@myxomatom
Copy link

Interesting, thank you

@taraspos
Copy link

taraspos commented Mar 6, 2018

Nginx >1.9 has streams support so you can simply use:

stream {
    server {
        listen           nginx-server:2222;
        proxy_pass my-ssh-server:22;
    }
}

@bchenSyd
Copy link

bchenSyd commented Apr 9, 2018

I am not very sure what this is for. If it’s just to expose localhost:3000 via codeplane.com, what is Nguni for? Isn’t codeplane.com:3000 already opened after you run ssh -R 3000:localhost:3000 deploy@codeplane.com?

If it’s to ssh over https , then Nginx can’t pass tcp traffic. Unless ver >1.9

————————————
Got it now. Thanks for sharing

@Turi-fly
Copy link

Turi-fly commented May 4, 2018

very good thank you!!

@flavienbwk
Copy link

Nginx >1.9 has streams support so you can simply use:

stream {
    server {
        listen           nginx-server:2222;
        proxy_pass my-ssh-server:22;
    }
}

Very useful, thanks

@bhrpro
Copy link

bhrpro commented Oct 26, 2021

Thanks for sharing dev

@abreuferr
Copy link

Nginx >1.9 has streams support so you can simply use:

stream {
    server {
        listen           nginx-server:2222;
        proxy_pass my-ssh-server:22;
    }
}

is there a possibility to configure for multiple ssh servers?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment