实测安装配置成功,在此记录过程
安装背景:近期,需建立服务器访问内网,先做一个实际测试
- 配置环境:Debian 9
- 使用 Let’s Encrypt 生成免费证书
- 需要一个域名
- 需要一个公网IP
- 客户端环境:Android / iOS / Ubuntu / Elementry / DeepinOS 均测试成功
二、配置服务器
- 这一环节是最关键的,也是本文核心
- 本人使用 VSCode 安装 Remote - SSH ,其他方法大同小异,能连上服务器就ok
1、安装服务端:
sudo apt update
sudo apt install ocserv
2、安装 Let’s Encrypt Client 用于生成证书
sudo apt install certbot
3、生成证书
sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email xxx@xxx.com -d abc.com
- 说明: xxx@xxx.com 改成你的邮箱;abc.com 改成你的域名
因为这台服务器运行这一个服务,故使用这种方法,如服务器上已经部署Nginx等服务,参考ocserv教程安装。 - 生成证书后,会输出证书目录,请记住或复制目录,下面会用到
4、编辑服务端配置文件
sudo nano /etc/ocserv/ocserv.conf
auth = "pam[gid-min=1000]"
auth = "plain[passwd=/etc/ocserv/ocpasswd]" # 默认即可
tcp-port = 443 # 按自己需求改
udp-port = 443 # 按自己需求改
server-cert = /etc/letsencrypt/live/abc.com/fullchain.pem #刚才的证书路径
server-key = /etc/letsencrypt/live/abc.com/privkey.pem #刚才的证书路径
max-clients = 20 #最大连接数,自定义。值为零代表不限制连接数
max-same-clients = 1 # 同一账号限制连接数量,按需求更改
try-mtu-discovery = false
idle-timeout = 1200
mobile-idle-timeout = 1200
cookie-timeout = 43200
default-domain = abc.com #你自己的域名
ipv4-network = 10.10.10.0 #这个看你本地网络是什么地址,不冲突就好
ipv4-netmask = 255.255.255.0
tunnel-all-dns = true
dns = 8.8.8.8
dns = 8.8.4.4
# 把路由都注释掉(前面加 # )
#route = 10.0.0.0/8
#route = 172.16.0.0/12
...
#no-route = 192.168.5.0/255.255.255.0
- 配置完毕保存 按 Ctrl+x 然后 enter 保存
- 然后
sudo systemctl restart ocserv
重启服务端 - 创建账户:
sudo ocpasswd -c /etc/ocserv/ocpasswd 你的用户名
然后输入自定义密码,回车。
5、进一步完成配置服务器
sed -i '/net.ipv4.ip_forward.*/d;$a\net.ipv4.ip_forward = 1' /etc/sysctl.conf
(开启IPv4转发)
sudo sysctl -p
注:更改在重启后生效,重启后注意检查各服务是否开启
6、防火墙:
sudo apt install ufw
安装防火墙
sudo ufw allow 22/tcp
放行SSH
ip addr
查看网卡名
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
注意eth0为你的网卡名
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
地址为你设置的地址
iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
开放443端口
iptables -A INPUT -p udp -m state --state NEW --dport 443 -j ACCEPT
开放443端口
service iptables save
2002-08 更新: 先apt install iptables-persistent,再iptables-save > /etc/iptables/iptables.rules
sudo systemctl restart ufw
#重启防火墙
防火墙简单设置
7、Tips:
- 安装过程出现错误,尝试安装后运行
apt-get -f install -y
- nano 配置文件后 保存 方法为 ctrl+x
systemctl status ocserv
可查看服务状态- iftop 可以监控服务器流量,
sudo apt-get install iftop
即可 - 在网络环境特别复杂(多重NAT等)、DNS污染,也可能导致连接出现问题。关于路由、网络 可以浏览我的 博客
下载客户端 & 连接
- 证书是受信任的,所以不会提示证书不安全
- 下载地址:
- iOS 搜索 AnyConnect
8、连接:输入域名、username(用户名)、password(密码) 连接即可。