VPN回家+网络唤醒+远程桌面
2021-12-01
需要:家里有电,有公网IP
1. VPN回家
1.1 安装openvpn和esayrsa(Linux系统)
openvpn是我们要用到的服务端 esayrsa用于证书的制作
1.2 制作证书
我们一共需要7个证书文件(六个必须,一个可选)
ca.crt
server.key
server.crt
dh2048.pem
client.key
client.crt
ta.key(可选)
server端需要的证书有
ca.crt
server.key
server.crt
dh2048.pem
ta.key(可选)
client端需要的证书有
ca.crt
client.key
client.crt
ta.key(可选)
复制配置文件
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
cp -r /usr/share/easy-rsa/ /etc/openvpn/
mv /etc/openvpn/vars.example /etc/openvpn/vars
制作根证书
cd /etc/openvpn
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
制作服务端证书
./easyrsa build-server-full server nopass
制作客户端证书
./easyrsa build-client-full client nopass
生成ta.key
/sbin/openvpn --genkey secret ./ta.key
1.3 修改服务端配置文件server.conf
local 0.0.0.0 # 填服务器真实IP
port 1194 #如果要修改默认端口,一定关闭selinux
proto tcp #协议udp/tcp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/server.crt
key /etc/openvpn/pki/private/server.key
dh /etc/openvpn/pki/dh.pem
server 10.8.0.0 255.255.255.0 # 给客户端分配的IP段
ifconfig-pool-persist ipp.txt # 记录客户端和虚拟ip的映射关系,当客户端重新连接时依然被分配断开之前的IP地址
push "route 192.168.1.0 255.255.255.0" # 服务端本地真实内网
push "route 10.8.0.0 255.255.255.0" #VPN拨号进来分配的虚拟内网
keepalive 10 120
tls-auth ta.key 0 # 0用于服务端 1用于客户端
cipher AES-256-GCM
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3 # 日志等级
#explicit-exit-notify 1 #此选项开启只能使用udp协议。否则会报错
1.4 开启路由转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
/sbin/sysctl -p
1.5 启动OpenVPN服务
/sbin/openvpn --daemon --config /etc/openvpn/server.conf
或者直接
systemctl enable openvpn@server
systemctl start openvpn@server
查看端口,检查是否正常运行
netstat -ntlp
1.6 修改客户端配置文件client.conf
client
dev tun
proto tcp
remote 192.168.1.2 1194 # 填服务器真实IP
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
verb 3
1.7 配置nat地址转换
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
nat地址转换,将拨号进来的客户端地址转换为内网地址
iptables -t nat -L
查看nat表规则
将client.conf
改名为client.ovpn
1.8 Windows连接服务端
下载并安装OpenVPN GUI
把上面的五个文件
/etc/openvpn/client.ovpn
/etc/easy-rsa/pki/private/client.key
/etc/easy-rsa/pki/issued/client.crt
/etc/easy-rsa/pki/ca.crt
/etc/openvpn/ta/key
下载到C:\Users\你的用户名\OpenVPN\config\client
目录下(client
自己创建,名称随意)
最后打开OpenVPN GUI
右键任务栏托盘图标选择client
连接即可。
1.9 Android连接服务端
下载并安装OpenVPN Connect
将上面五个文件放到手机的同一个目录,打开软件找到并导入client.ovpn
,最后连接即可。
2. 网络唤醒
2.1 设置电脑主板BIOS
将BIOS中的
PXE BOOT TO LAN
选项启用,有些主板叫PCIE唤醒,网络唤醒。
2.2 设置网卡
右键Windows菜单栏
,打开设备管理器
,找到网络适配器
并展开,找到你的网卡,右键打开属性
,打开电源管理
,勾选允许此设备唤醒计算机
。
手机安装软件wake to lan
打开后找到对应主机即可唤醒。
注意:不支持无线网卡
3.远程桌面
以Windows10为例,打开设置,点开系统,找到远程桌面,启用远程桌面。 其他设备可以通过微软官方软件
RD Client
,实现远程桌面的连接,需要知道目标主机的用户名和密码。
4. 最后
结合上面三个步骤就可以实现这么一个效果,首先通过OpenVPN拨号到家里的内网,然后网络唤醒家里的电脑,再通过远程桌面操作家里的电脑。