To uninstall IPsec VPN, run the helper script:
Warning: This helper script will remove IPsec VPN from your server. All VPN configuration will be permanently deleted, and Libreswan and xl2tpd will be removed. This cannot be undone!
wget https://get.vpnsetup.net/unst -O unst.sh && sudo bash unst.shClick here if you are unable to download.
You may also use curl to download:
curl -fsSL https://get.vpnsetup.net/unst -o unst.sh && sudo bash unst.shAlternative script URLs:
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnuninstall.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnuninstall.shAlternatively, you may manually uninstall IPsec VPN by following these steps. Commands must be run as root, or with sudo.
Warning: These steps will remove IPsec VPN from your server. All VPN configuration will be permanently deleted, and Libreswan and xl2tpd will be removed. This cannot be undone!
service ipsec stop
service xl2tpd stop
rm -rf /usr/local/sbin/ipsec /usr/local/libexec/ipsec /usr/local/share/doc/libreswan
rm -f /etc/init/ipsec.conf /lib/systemd/system/ipsec.service /etc/init.d/ipsec \
/usr/lib/systemd/system/ipsec.service /etc/logrotate.d/libreswan \
/usr/lib/tmpfiles.d/libreswan.confapt-get purge xl2tpd
yum remove xl2tpd
apk del xl2tpd
Edit /etc/iptables.rules and remove unneeded rules. Your original rules (if any) are backed up as /etc/iptables.rules.old-date-time. In addition, edit /etc/iptables/rules.v4 if the file exists.
If IPv6 support was enabled, also edit /etc/ip6tables.rules and /etc/iptables/rules.v6 (if it exists) and remove unneeded rules.
Edit /etc/sysconfig/iptables and remove unneeded rules. Your original rules (if any) are backed up as /etc/sysconfig/iptables.old-date-time.
If IPv6 support was enabled, also edit /etc/sysconfig/ip6tables and remove unneeded rules.
Note: If using Rocky Linux, AlmaLinux, Oracle Linux 8 or CentOS/RHEL 8 and firewalld was active during VPN setup, nftables may be configured. Edit /etc/sysconfig/nftables.conf and remove unneeded rules. Your original rules are backed up as /etc/sysconfig/nftables.conf.old-date-time.
Edit /etc/sysctl.conf and remove the lines after # Added by hwdsl2 VPN script.
Edit /etc/rc.local and remove the lines after # Added by hwdsl2 VPN script. DO NOT remove exit 0 (if any).
Note: This step is optional.
Remove these config files:
- /etc/ipsec.conf*
- /etc/ipsec.secrets*
- /etc/ppp/chap-secrets*
- /etc/ppp/options.xl2tpd*
- /etc/pam.d/pluto
- /etc/sysconfig/pluto
- /etc/default/pluto
- /etc/ipsec.d (directory)
- /etc/xl2tpd (directory)
Copy and paste for fast removal:
rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* \
/etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto
rm -rf /etc/ipsec.d /etc/xl2tpdRemove helper scripts:
rm -f /usr/bin/ikev2.sh /opt/src/ikev2.sh \
/usr/bin/addvpnuser.sh /opt/src/addvpnuser.sh \
/usr/bin/delvpnuser.sh /opt/src/delvpnuser.shRemove fail2ban:
Note: This is optional. Fail2ban can help protect SSH on your server. Removing it is NOT recommended.
service fail2ban stop
# Ubuntu & Debian
apt-get purge fail2ban
# CentOS/RHEL, Rocky Linux, AlmaLinux, Oracle Linux & Amazon Linux 2
yum remove fail2ban
# Alpine Linux
apk del fail2banReboot your server.
Copyright (C) 2016-2026 Lin Song
This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License
Attribution required: please include my name in any derivative and let me know how you have improved it!

