在公网上访问内网服务器的方法,使用端口映射

此方法适用于在内网中有一台Linux服务器并购买了VPS的情况。尽管网站可以直接搭建在VPS上,但是有些情况下对磁盘容量的需求比较大,比如同时搭建云盘服务,购买VPS的磁盘容量价格较高,这时候就可以把服务放在内网环境,使用VPS的公网IP访问内网服务器。 使用的工具很普通,就是SSH,如果你是头一次听说,一定会感到惊讶,这个我们经常在用的工具竟然还能够做端口映射,在我知道之前用的是付费的第三方内网穿透服务。当然,也许你第一次使用SSH的时候就已经全面地了解过它。 为了区分内网与外网的两台主机,这里使用Server表示VPS,Client表示内网中的主机。默认情况下,SSH连接远程Linux主机后长时间没有操作会自动断线,可以修改SSH的配置文件,保证连接不自动中断。设置的数值可以按照个人意愿修改,具体意义可以在网上查到。 在Server上进行设置,编缉/etc/ssh/sshd_config,添加 GatewayPorts=yes ClientAliveInterval 30 ClientAliveCountMax 60 # 重启SSH服务端 service sshd restart 设置Client,编缉/etc/ssh/ssh_config,添加 ServerAliveInterval 20 ServerAliveCountMax 999 # 重启SSH客户端 service ssh restart 至此,Server与Client设置完毕,可以开始端口映射了。这里以映射80端口为例,在Client主机上运行: ssh -C -f -N -g -R 80:localhost:80 root@[VPS的IP地址] 输入VPS的root密码即可。 SSH的这几个选项的意义: -C:压缩数据传输。 -f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。 -N :不执行脚本或命令,通常与-f连用。 -g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。 -L :本地端口:目标IP:目标端口 -R: 远程端口:目标IP:目标端口 到现在为止,如果内网主机上在80端口有web服务,则通过VPS的IP地址也能访问了。浏览器中输入VPS的IP地址即可,默认访问的就是80端口。

开机自动登录远程服务器

先切换为root用户 sudo -s 然后运行SSH-KEY命令生成密钥,密钥文件会保存在Root用户目录下,使用时直接读取 sshkey-gen -t rsa 最后把公钥文件上传到服务器,以进行登录时认证使用 sftp user@server_ip put /root/.ssh/id_rsa.pub exit ssh user@server_ip cat /home/user/id_rsa.pub >> /home/user/.ssh/authorized_keys exit 之后再登录服务器即可自动连到到服务器 原因:用户登录的情况下,使用SSH-key只会读取当前用户个人的密钥,而rc.local是以root用户身份运行的,所以需要在root用户目录下创建密钥,否则查看进程会看到认证失败的提示,这个方法主要用在端口开机自动映射的情况下。

Linux如何设置SSH Key登录?

1、生成ssh公钥和私钥,执行如下命令: ssh-keygen -t rsa 在生成过程中可以根据需要设置一个passphrase,也可以不设置。 2、生成完成后,会有相应的文件 id_rsa id_rsa.pub 3、将id_rsa.pub拷贝到目标服务器的~/.ssh目录 4、将公钥文件制成验证key,删除公钥文件 cat id_rsa.pub >> authorized_keys rm -rf id_rsa.pub 5、尝试登录,将不需要密码,如果设置了passphrase,则需要输入这个密码

开放端口

ubuntu下开放端口主要有两种办法: 自带的防火墙 使用iptables 安装iptables: $ sudo apt-get install iptables   添加规则: $ sudo iptables -I INPUT -p tcp –dport 80 -j ACCEPT   保存规则 $ sudo iptables-save   持久化iptables iptables-save只是暂时保存了端口的开放规则,如果关机或者重启,那么刚才添加的规则就会失效。 使用iptables-persistent可以对端口的开放规则进行持久化操作,使其永久保持有效。   安装iptables-persistent $ sudo apt-get install iptables-persistent   持久化规则 $ sudo netfilter-persistent save $ sudo netfilter-persistent reload   出处:https://blog.csdn.net/pcf1995/article/details/81082491

win10下Linux子系统开启ssh服务

安装ssh apt-get install openssh-server 修改sshd配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 修改内容: Port 23 # 端口改为23,22端口已被系统占用 ListenAddress 0.0.0.0 # 取消注释 #StrictModes yes # 注释 PasswordAuthentication yes # 允许密码登录 启动ssh service ssh start 如果提示sshd error: could not load host key,则用下面的命令重新生成 sudo rm /etc/ssh/ssh*key dpkg-reconfigure openssh-server 出处:http://www.it1352.com/725354.html