# one_click_script: A Menu-Driven Installer for Linux Kernels, BBR, and Wireguard on VPS Servers

> one_click_script is a MIT-licensed interactive shell script that installs mainline and LTS Linux kernels, enables BBR, BBR Plus, or BBR2 congestion control, and sets up Wireguard with Cloudflare WARP on Debian, Ubuntu, and CentOS servers. It is aimed at VPS operators who want kernel and network tuning without compiling or manually managing DKMS packages.

**jinwyp/one_click_script** — install latest or LTS linux kernel and enable BBR or BBR plus

- Repository: https://github.com/jinwyp/one_click_script
- Stars: 5,143 · Forks: 1,393
- Language: Shell
- License: MIT
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/jinwyp-one-click-script

## A Menu-Driven Script for Kernel Replacement and Network Tuning

one_click_script presents an interactive numbered menu after it starts. The operator reads the menu and enters a number to select a kernel version or enable a congestion control algorithm. The script handles the rest: downloading the kernel package, removing the old one when prompted, rebooting, and re-enabling the chosen algorithm after the reboot.

The repository contains several independent scripts. install_kernel.sh handles kernel installation and BBR. trojan_v2ray_install.sh installs v2ray, xray, trojan, and shadowsocks proxy servers. linux_install_software.sh installs Docker, Node.js, Joplin, and other tools. The README links to these scripts individually and to Chinese-language companion documents. netflix_check.sh tests whether a VPS IP address can access Netflix non-self-produced content.

The target user is a VPS operator running a server with a stock kernel who wants to switch to a newer kernel for better performance, or who wants to enable BBR to improve TCP throughput on high-latency connections. The script supports Debian 9 and later, Ubuntu 16 and later, and CentOS 7 and later.

## Installing and Running the Kernel Script

The README provides three download methods. The shortest uses bash with a URL redirect:

```bash
bash <(curl -Lso- https://git.io/kernel.sh)
```

To download the script file first and then run it, use curl:

```bash
curl -O https://raw.githubusercontent.com/jinwyp/one_click_script/master/install_kernel.sh && chmod +x ./install_kernel.sh && ./install_kernel.sh
```

Or wget:

```bash
wget --no-check-certificate https://raw.githubusercontent.com/jinwyp/one_click_script/master/install_kernel.sh && chmod +x ./install_kernel.sh && ./install_kernel.sh
```

Once running, the script displays a numbered menu. The README specifies which numbers to use for each distribution and goal. On CentOS, enter 31 to install the latest kernel (described in the README as 5.16) or 35 for the LTS kernel (5.10, described as recommended). On Debian, enter 41 for the LTS 5.10 kernel. On Ubuntu, enter 45 for the LTS 5.10 kernel.

The README states the full kernel installation requires two reboots. During the removal step, a large warning screen appears asking whether to continue. The README instructs the operator to choose NO to proceed, not to abort. After both reboots, rerun the script and enter 2 to enable BBR with CAKE (described as recommended) or FQ congestion control.

## Congestion Control Options: BBR, BBR Plus, and BBR2

The script offers three congestion control variants. Standard BBR, enabled by entering 2 after the kernel is installed, uses the FQ or CAKE queueing discipline. CAKE is described in the README as the recommended choice.

BBR Plus is enabled through a separate kernel. Enter 61 to install the BBR Plus 4.14.129 kernel, or 66 for the BBR Plus 5.10 LTS kernel. After the two required reboots, rerun the script and enter 3 to activate BBR Plus.

BBR2 is available through the XanMod kernel on Debian or Ubuntu. Enter 51 to install the XanMod LTS 5.10 kernel, then after the reboot, rerun the script and enter 2 to enable the BBR2 variant included with XanMod.

The script does not validate which kernel version is currently running before displaying the menu. If an operator enters option 2 on a kernel that was not installed through the script, the result is undefined. The README does not document a way to check the current kernel version or congestion control state from within the menu.

## Wireguard and Cloudflare WARP Integration

The script includes two modes for adding Cloudflare WARP to a VPS. Enter 11 to install the WARP Linux client and configure it as a SOCKS5 proxy. Enter 12 to install Wireguard and configure WARP over IPv6, which adds a public IPv6 address to the VPS.

After either option, the README instructs the operator to rerun the script and enter 21 to test Netflix accessibility through the configured route. The README also documents combining WARP with the v2ray installer to route specific traffic through WARP or IPv6, which requires reading the v2ray companion script.

Cloudflare WARP is used in this context because it assigns a residential-like IP address, which passes geo-restriction checks for streaming services that block datacenter IP ranges. The README lists Netflix, YouTube, Hulu, HBO Now, and Disney Plus as targets for region unlocking. It also notes that WARP and IPv6 routing can avoid Google reCAPTCHA on servers whose datacenter IP range is flagged.

## What the Script Does Not Handle

The script installs kernels downloaded from external URLs. The README gives kernel version numbers (5.10, 5.16, XanMod 5.10) as menu labels, but the actual package downloaded depends on what the script fetches at runtime. There is no signature verification step documented in the README.

There is no rollback mechanism. If a kernel upgrade leaves the server unreachable, recovery requires console access through the VPS provider's out-of-band interface or a rescue boot environment. The README notes that the installation involves two reboots and that the operator must intervene at a specific warning screen. An unattended run would stall at that prompt.

The script is maintained as a collection of separate shell scripts rather than a versioned package. The README does not document a way to update the script itself after it is downloaded. An operator who runs the script six months after downloading it may run a version that no longer matches the URLs or kernel versions in the current repository.

The script does not cover Ubuntu kernel handling through the Hardware Enablement (HWE) stack or Ubuntu's own kernel upgrade mechanism, which may conflict with a manual kernel installed through this script.

## Comparing with Cloud Provider Kernel Management

Major cloud providers including AWS, Google Cloud, and Azure manage kernel updates through their own package channels and update automation. On an AWS EC2 instance, the Amazon Linux kernel receives updates through yum or dnf, and AWS supports the AWS-tuned kernel optimized for its network stack. Using one_click_script to replace the kernel on a cloud provider instance may break provider-specific kernel modules, the out-of-tree network drivers, or the hypervisor paravirt drivers.

The script is designed for unmanaged VPS providers, where the operator has root access and the provider does not offer managed kernel updates. On a provider like Vultr, Linode, or Hetzner with a bare Debian or Ubuntu image, using the script to install a newer kernel and enable BBR is a common and supported workflow. On a managed cloud instance with a custom kernel, it is a risk.

## Maintenance and License

The last push to the repository was on 2026-06-09. The repository is released under the MIT license. There are no GitHub releases; all updates are committed directly to the master branch.

The repository includes companion documentation files in both English and Chinese. The Chinese-language documentation covers the same operations and is linked from the README alongside the English files. The script also includes the netflix_check.sh utility, which the README states can be run on macOS and Linux, and on Windows via the Ubuntu Windows Subsystem for Linux.

## Conclusion

one_click_script is useful for VPS operators on Debian, Ubuntu, or CentOS who want to switch kernel versions or enable BBR congestion control without compiling packages or managing DKMS entries by hand. The interactive menu works well when the operator knows which option number to pick, but it offers no undo and no rollback if a kernel upgrade leaves the system unbootable. Anyone who cannot afford downtime during two reboots should test in a disposable environment first. The last push was on 2026-06-09.

## FAQ

### What distributions does one_click_script support for kernel installation?

The README lists Debian 9 and later, Ubuntu 16 and later, and CentOS 7 and later. The README also mentions AlmaLinux and Rocky Linux as CentOS-compatible distributions where the same menu options apply.

### How many reboots does one_click_script require to install a new kernel and enable BBR?

The README states the kernel installation requires two reboots. After both reboots, the operator reruns the script and selects option 2 to enable BBR, which takes effect without an additional reboot.

### Does one_click_script work on managed cloud instances from AWS or Google Cloud?

The README targets unmanaged VPS providers. Using the script to replace the kernel on a managed cloud instance from AWS or Google Cloud may break provider-specific kernel modules. The README does not address this use case.

## Sources

- [Issues](https://github.com/jinwyp/one_click_script/issues)
- [jinwyp/one_click_script on GitHub](https://github.com/jinwyp/one_click_script)
- [License: MIT](https://github.com/jinwyp/one_click_script/blob/master/LICENSE)
- [README](https://github.com/jinwyp/one_click_script/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/jinwyp-one-click-script
