I’ve specifically created a web application with Cesium that runs on a private network connecting to GeoServer.
Cesium itself will only need to have an ImageryProvider created for your GeoServer instance and you should be good to go.
The only issue I ran into was CORS due to the ports mismatching. I was using Apache on port 80 and GeoServer was using port 8080. I solved this by configuring a reverse proxy on the Apache server so that http://<mygeoserver_hostname>:8080/geoserver was being served as http://<myapplication_hostname>/geoserver.
Reverse Proxies are possible using most current web servers and there is a lot of resources out there for setting them up based on whichever server infrastructure you’re using. For apache it’s usually a matter of adding 3-5 lines of configuration and ensuring the correct proxy module is enabled.
Hope that helps.