<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: DD</title>
    <description>The latest articles on DEV Community by DD (@kevin_tan).</description>
    <link>https://dev.to/kevin_tan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3362768%2F75a9b249-178f-41d3-81fd-08d27499432d.png</url>
      <title>DEV Community: DD</title>
      <link>https://dev.to/kevin_tan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kevin_tan"/>
    <language>en</language>
    <item>
      <title>Deploying weserv/images with Docker</title>
      <dc:creator>DD</dc:creator>
      <pubDate>Fri, 28 Nov 2025 07:19:29 +0000</pubDate>
      <link>https://dev.to/kevin_tan/deploying-weservimages-with-docker-bii</link>
      <guid>https://dev.to/kevin_tan/deploying-weservimages-with-docker-bii</guid>
      <description>&lt;h1&gt;
  
  
  Dockerfile
&lt;/h1&gt;

&lt;p&gt;For self-hosted instances, you can remove those weserv_deny_ip nginx directives from your nginx.conf.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM ghcr.io/weserv/images:5.x

RUN sed -i '/weserv_deny_ip/d' /etc/nginx/nginx.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Usage
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t weserv/images .
docker run -d -p 8080:80 --shm-size=1gb --name=weserv weserv/images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Links
&lt;/h1&gt;

&lt;p&gt;Website: &lt;a href="https://wsrv.nl/" rel="noopener noreferrer"&gt;https://wsrv.nl/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/weserv/images" rel="noopener noreferrer"&gt;https://github.com/weserv/images&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Docker: &lt;a href="https://github.com/weserv/images/tree/5.x/docker#readme" rel="noopener noreferrer"&gt;https://github.com/weserv/images/tree/5.x/docker#readme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fix for “IP address blocked by policy” issue: &lt;a href="https://github.com/weserv/images/issues/440" rel="noopener noreferrer"&gt;https://github.com/weserv/images/issues/440&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>devops</category>
      <category>docker</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to Install the Nextcloud All-in-One on Linux</title>
      <dc:creator>DD</dc:creator>
      <pubDate>Wed, 15 Oct 2025 06:51:55 +0000</pubDate>
      <link>https://dev.to/kevin_tan/how-to-install-the-nextcloud-all-in-one-on-linux-2pco</link>
      <guid>https://dev.to/kevin_tan/how-to-install-the-nextcloud-all-in-one-on-linux-2pco</guid>
      <description>&lt;h1&gt;
  
  
  Run Nextcloud AIO
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run -d \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8090:8080 \
--env APACHE_PORT=11000 \
--env APACHE_IP_BINDING=0.0.0.0 \
--env APACHE_ADDITIONAL_NETWORK="" \
--env SKIP_DOMAIN_VALIDATION=false \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env NEXTCLOUD_DATADIR="/mnt/ncdata" \
ghcr.io/nextcloud-releases/all-in-one:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  All-in-One setup
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44k860mq6t9r5tr0b0cu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44k860mq6t9r5tr0b0cu.png" alt=" " width="615" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9g4bgq0nfslkypwmv26f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9g4bgq0nfslkypwmv26f.png" alt=" " width="613" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjk8arswc89dc76m7pen.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjk8arswc89dc76m7pen.png" alt=" " width="608" height="907"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  About Collabora
&lt;/h1&gt;

&lt;p&gt;When opening the document, an error may occur:&lt;br&gt;
Failed to establish socket connection or socket connection closed unexpectedly. The reverse proxy might be misconfigured, please contact the administrator. For more info on proxy configuration please checkout &lt;a href="https://sdk.collaboraonline.com/docs/installation/Proxy_settings.html" rel="noopener noreferrer"&gt;https://sdk.collaboraonline.com/docs/installation/Proxy_settings.html&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
 listen       443 ssl;
 server_name  cloud.example.com;


 ssl_certificate /path/to/certificate;
 ssl_certificate_key /path/to/key;

 # Nextcloud Web Serve
 location / {
   root    /;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_read_timeout 90;
   proxy_pass   http://192.168.168.10:11000/;
 }

 # static files
 location ^~ /browser {
   proxy_pass http://127.0.0.1:11000;
   proxy_set_header Host $host;
 }


 # WOPI discovery URL
 location ^~ /hosting/discovery {
   proxy_pass http://127.0.0.1:11000;
   proxy_set_header Host $host;
 }


 # Capabilities
 location ^~ /hosting/capabilities {
   proxy_pass http://127.0.0.1:11000;
   proxy_set_header Host $host;
 }


 # main websocket
 location ~ ^/cool/(.*)/ws$ {
   proxy_pass http://127.0.0.1:11000;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_set_header Host $host;
   proxy_read_timeout 36000s;
 }


 # download, presentation and image upload
 location ~ ^/(c|l)ool {
   proxy_pass http://127.0.0.1:11000;
   proxy_set_header Host $host;
 }


 # Admin Console websocket
 location ^~ /cool/adminws {
   proxy_pass http://127.0.0.1:11000;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_set_header Host $host;
   proxy_read_timeout 36000s;
 }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  About OnlyOffice
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -i -t -d -p 7070:80 \
  -e JWT_ENABLED=true \
  -e JWT_SECRET=your_jwt_secret \
  --name onlyoffice-documentserver \
  onlyoffice/documentserver:9.0.4.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;How to setup OnlyOffice?&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/nextcloud/all-in-one/discussions/5302" rel="noopener noreferrer"&gt;https://github.com/nextcloud/all-in-one/discussions/5302&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ONLYOFFICE/Docker-DocumentServer&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/ONLYOFFICE/Docker-DocumentServer" rel="noopener noreferrer"&gt;https://github.com/ONLYOFFICE/Docker-DocumentServer&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Useful links
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;How to Install the Nextcloud All-in-One on Linux&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/" rel="noopener noreferrer"&gt;https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reverse Proxy Documentation&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md" rel="noopener noreferrer"&gt;https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;all-in-one/compose.yaml&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/nextcloud/all-in-one/blob/main/compose.yaml" rel="noopener noreferrer"&gt;https://github.com/nextcloud/all-in-one/blob/main/compose.yaml&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ESXi 虚拟机安装CentOS 8</title>
      <dc:creator>DD</dc:creator>
      <pubDate>Wed, 27 Aug 2025 02:44:20 +0000</pubDate>
      <link>https://dev.to/kevin_tan/esxi-xu-ni-ji-an-zhuang-centos-8-2fk9</link>
      <guid>https://dev.to/kevin_tan/esxi-xu-ni-ji-an-zhuang-centos-8-2fk9</guid>
      <description>&lt;h1&gt;
  
  
  添加CentOS虚拟机
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. 选择创建类型
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7jha76eqe4wimtedw5l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7jha76eqe4wimtedw5l.png" alt=" " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. 选择名称和客户机操作系统
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5d7qdza6vax19elqhwwx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5d7qdza6vax19elqhwwx.png" alt=" " width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. 选择存储
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fti4wk08kzzfangll6r9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fti4wk08kzzfangll6r9c.png" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. 自定义设置
&lt;/h2&gt;

&lt;p&gt;虚拟硬件&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8i4oogn3nzm30kjls07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8i4oogn3nzm30kjls07.png" alt=" " width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnwdbilyhp6utm3wg0zv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnwdbilyhp6utm3wg0zv.png" alt=" " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;虚拟机选项&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p8wn5kpxlkuncl2e7va.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p8wn5kpxlkuncl2e7va.png" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5.即将完成
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qw17lv50b3rqlk167ie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qw17lv50b3rqlk167ie.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  安装CentOS流程
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4velfy35u6zgvqi8ag3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4velfy35u6zgvqi8ag3.png" alt=" " width="768" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1g9yn9j5bopcz19kbeqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1g9yn9j5bopcz19kbeqz.png" alt=" " width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jlh439a9newglk604sk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jlh439a9newglk604sk.png" alt=" " width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  根密码
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40hy7dj597vtxdycl2dr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40hy7dj597vtxdycl2dr.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;记住勾选：允许root用户使用密码进行SSH登录&lt;/p&gt;

&lt;h2&gt;
  
  
  网络和主机名
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofmri4vrhuv8b5pj77mz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofmri4vrhuv8b5pj77mz.png" alt=" " width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  安装目的地
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmlrznis0siti3fal98u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmlrznis0siti3fal98u.png" alt=" " width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  软件选择
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppk3mil1oawpmkdn5xvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppk3mil1oawpmkdn5xvo.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  开始安装
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmq54c1rfqcmwo3x02xb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmq54c1rfqcmwo3x02xb.png" alt=" " width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>在Ubuntu上安装OpenVPN客户端</title>
      <dc:creator>DD</dc:creator>
      <pubDate>Thu, 17 Jul 2025 08:30:38 +0000</pubDate>
      <link>https://dev.to/kevin_tan/zai-ubuntushang-an-zhuang-openvpnke-hu-duan-316n</link>
      <guid>https://dev.to/kevin_tan/zai-ubuntushang-an-zhuang-openvpnke-hu-duan-316n</guid>
      <description>&lt;p&gt;在 Linux 上配置 OpenVPN 客户端，通过 OpenVPN 连接到公司、服务器局域网。&lt;/p&gt;

&lt;h1&gt;
  
  
  安装 OpenVPN 客户端
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install openvpn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  启动OpenVPN客户端
&lt;/h1&gt;

&lt;p&gt;使用以下命令启动OpenVPN客户端，并指定配置文件：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo openvpn --config /etc/openvpn/client.ovpn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;如果提示：Enter Private Key Password，输入指定密码即可。&lt;/p&gt;

&lt;h1&gt;
  
  
  测试命令
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ping google.com
ping baidu.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ubuntu</category>
      <category>openvpn</category>
      <category>linux</category>
      <category>devops</category>
    </item>
    <item>
      <title>在 CentOS 上安装 OpenVPN 客户端连接配置</title>
      <dc:creator>DD</dc:creator>
      <pubDate>Thu, 17 Jul 2025 08:30:10 +0000</pubDate>
      <link>https://dev.to/kevin_tan/zai-centos-shang-an-zhuang-openvpn-ke-hu-duan-lian-jie-pei-zhi-3e10</link>
      <guid>https://dev.to/kevin_tan/zai-centos-shang-an-zhuang-openvpn-ke-hu-duan-lian-jie-pei-zhi-3e10</guid>
      <description>&lt;p&gt;在 Linux 上配置 OpenVPN 客户端，通过 OpenVPN 连接到公司、服务器局域网。&lt;/p&gt;

&lt;h1&gt;
  
  
  安装 OpenVPN 客户端
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;yum 直接安装
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yum &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;epel-release
yum &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;openvpn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;安装完成后会在 &lt;code&gt;/etc/openvpn&lt;/code&gt; 生成对应的文件
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="c"&gt;# cd /etc/openvpn/&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;openvpn&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="c"&gt;# ls&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  配置文件
&lt;/h1&gt;

&lt;p&gt;导入 客户端配置（通常是 .ovpn 文件） 和 账号密码 文件&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@localhost openvpn]# tree /etc/openvpn/
/etc/openvpn/
├── client
├── client.ovpn           &lt;span class="c"&gt;# 客户端配置文件&lt;/span&gt;
├── passwd                &lt;span class="c"&gt;# 账号密码文件&lt;/span&gt;
└── server

2 directories, 2 files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  连接测试
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;执行命令
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;openvpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nt"&gt;--daemon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;\&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nt"&gt;--cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/etc/openvpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nt"&gt;--config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;client.ovpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nt"&gt;--askpass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;/etc/openvpn/passwd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nt"&gt;--log-append&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;/var/log/openvpn.log&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;命令参数说明
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;--daemon           # 后台运行
--cd               # 配置文件目录路径
--config           # 配置文件名称
--askpass          # 指定账号密码文件
--log-append       # 日志文件
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;测试命令
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;ping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;google.com&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;参考文档&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://juejin.cn/post/6844903647004852237" rel="noopener noreferrer"&gt;Linux OpenVPN 客户端连接配置&lt;/a&gt;&lt;br&gt;
&lt;a href="https://forums.openvpn.net/viewtopic.php?t=27419" rel="noopener noreferrer"&gt;[Solved] Please enter password with the systemd-tty-ask-password-agent tool!&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
