SS(Secure Shell,安全壳)是一种常用的网络协议,主要用于安全地通过文本界面远程登录到Unix/Linux系统,SS代理可以帮助用户通过本地计算机连接到远程服务器,实现隧道代理,从而保护隐私并绕过防火墙限制。
本教程将分为以下几个部分:
- 安装SS代理
- 配置SS代理
- 使用SS代理进行连接
安装SS代理
根据你的操作系统,安装SS代理工具,常用的SS客户端工具包括:
- Windows:SSW(SS Windows客户端)
- Mac/Linux:默认安装了OpenSSH客户端和服务器。
- Linux:安装
sshd或openssh-server。
在Windows上安装SSW
-
下载并安装SSW:
- 访问SSW官方网站。
- 下载并安装最新版本的SSW。
-
配置SSW:
- 打开SSW,点击右键的“新建文件”。
- 输入连接信息:
- Host Name: 远程服务器的IP地址或域名。
- Port: 远程端口(默认22)。
- Authentication: 选择身份验证方式(如密码、证书或密钥)。
- 保存配置文件,右键点击并选择“保存为”以导出配置文件。
在Mac/Linux上安装OpenSSH
- Mac/Linux:
- 已经安装了OpenSSH客户端和服务器。
- 如果需要配置SOCKS代理,可以安装
socks和libsocks2库。
在Linux上安装OpenSSH服务器
-
安装依赖项:
- 更新包仓库:
sudo apt update。 - 安装OpenSSH:
sudo apt install openssh-server。
- 更新包仓库:
-
生成密钥对:
- 创建SSH密钥对:
ssh-keygen -t rsa -b 4096。 - 生成密码对:
ssh-passwd(如果需要密码认证)。
- 创建SSH密钥对:
-
配置服务器:
- 打开
/etc/ssh/sshd_config。 - 修改配置:
- Port: 指定端口(默认22)。
- ListenAddress: 指定IP地址接受连接。
- AllowPortForwarding: 设置端口转发。
- 打开
-
启动服务器:
- 重新加载配置:
sudo systemctl reload sshd。
- 重新加载配置:
配置SS代理
SS代理可以通过不同的方式配置,包括:
- 本地客户端配置
- 远程服务器配置
- 使用SOCKS代理
配置本地客户端
-
设置SOCKS代理(推荐)
-
下载并安装SOCKS代理:
- 在Windows上安装Polipo或SSW内置代理。
- 在Mac/Linux上安装
socks和libsocks2。
-
配置客户端:
- Windows:
- 打开SSW,设置“本地代理”或“SOCKS”选项。
- 输入 SOCKS 代理服务器地址和端口。
- Mac/Linux:
- 修改
~/.ssh/config:Host * ProxyCommand proxychains ssh -D 108
- 修改
- Windows:
-
测试SOCKS代理:
- 使用命令:
ssh -D 108 localhost。
- 使用命令:
-
-
配置远程服务器
-
允许端口转发:
- 打开
/etc/ssh/sshd_config,设置AllowPortForwarding yes。 - 保存并重新加载配置:
sudo systemctl reload sshd。
- 打开
-
指定允许的本地端口:
- 添加限制,如
PortForwarding yes和LocalForwarding yes。
- 添加限制,如
-
-
使用SS代理进行端口转发
-
本地端口转发:
- 启用本地代理,
ssh -L 108:remote.example.com:22 localhost
- 这将将本地端口108转发到远程服务器的22端口。
- 启用本地代理,
-
远程端口转发:
- 将本地端口转发到远程端口:
ssh -R 108:localhost:22 remote.example.com
- 这将将本地108端口转发到远程服务器的localhost:22。
- 将本地端口转发到远程端口:
-
使用SOCKS代理
-
配置SOCKS代理客户端:
在客户端上设置SOCKS代理地址和端口。
-
通过SOCKS代理连接远程服务器:
- 使用命令:
ssh -D 108 socks.example.com:1081。
- 使用命令:
使用SS代理进行连接
使用SS代理进行隧道连接
-
隧道类型:
- 本地隧道:将本地端口转发到远程服务器。
- 远程隧道:将远程端口转发到本地。
-
示例:使用本地隧道
ssh -L 108:remote.example.com:22 localhost
- 输入密码或使用密钥。
- 隧道建立后,可通过本地108端口访问远程服务器。
-
使用SOCKS代理访问互联网
ssh -D 108 socks.example.com:1081
使用SOCKS代理访问互联网,所有流量都通过代理服务器。
常见问题与解决方法
-
权限问题:
- 确保有权限访问服务器或代理地址。
- 检查密钥对的权限:
chmod 600 ~/.ssh/id_rsa。
-
端口问题:
- 检查防火墙设置,确保端口未被阻止。
- 确认远程服务器的端口是否开放。
-
证书问题:
确认证书是否有效,且已被正确导入到客户端。
-
网络限制:
确保代理服务器不位于被防火墙阻止的地址范围内。
注意事项
- 安全性:确保代理服务器的安全性,定期更新证书和密钥。
- 带宽限制:SOCKS代理可能对带宽产生影响,特别是在高流量场景下。
- 配置错误:仔细检查配置文件,避免语法错误。









